qwt_event_pattern.h
Go to the documentation of this file.
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_EVENT_PATTERN
00011 #define QWT_EVENT_PATTERN 1
00012 
00013 #include "qwt_global.h"
00014 #include <qnamespace.h>
00015 #include <qvector.h>
00016 
00017 class QMouseEvent;
00018 class QKeyEvent;
00019 
00029 class QWT_EXPORT QwtEventPattern
00030 {
00031 public:
00044     enum MousePatternCode
00045     {
00053         MouseSelect1,
00054 
00062         MouseSelect2,
00063 
00071         MouseSelect3,
00072 
00080         MouseSelect4,
00081 
00089         MouseSelect5,
00090 
00098         MouseSelect6,
00099 
00101         MousePatternCount
00102     };
00103 
00111     enum KeyPatternCode
00112     {
00114         KeySelect1,
00115 
00117         KeySelect2,
00118 
00120         KeyAbort,
00121 
00123         KeyLeft,
00124 
00126         KeyRight,
00127 
00129         KeyUp,
00130 
00132         KeyDown,
00133 
00135         KeyRedo,
00136 
00138         KeyUndo,
00139 
00141         KeyHome,
00142 
00144         KeyPatternCount
00145     };
00146 
00148     class MousePattern
00149     {
00150     public:
00152         MousePattern( Qt::MouseButton btn = Qt::NoButton, 
00153                 Qt::KeyboardModifiers modifierCodes = Qt::NoModifier ):
00154             button( btn ),
00155             modifiers( modifierCodes )
00156         {
00157         }
00158 
00160         Qt::MouseButton button;
00161 
00163         Qt::KeyboardModifiers modifiers;
00164     };
00165 
00167     class KeyPattern
00168     {
00169     public:
00171         KeyPattern( int keyCode = Qt::Key_unknown, 
00172                 Qt::KeyboardModifiers modifierCodes = Qt::NoModifier ):
00173             key( keyCode ),
00174             modifiers( modifierCodes )
00175         {
00176         }
00177 
00179         int key;
00180 
00182         Qt::KeyboardModifiers modifiers;
00183     };
00184 
00185     QwtEventPattern();
00186     virtual ~QwtEventPattern();
00187 
00188     void initMousePattern( int numButtons );
00189     void initKeyPattern();
00190 
00191     void setMousePattern( MousePatternCode, Qt::MouseButton button, 
00192         Qt::KeyboardModifiers = Qt::NoModifier );
00193 
00194     void setKeyPattern( KeyPatternCode, int keyCode, 
00195         Qt::KeyboardModifiers modifierCodes = Qt::NoModifier );
00196 
00197     void setMousePattern( const QVector<MousePattern> & );
00198     void setKeyPattern( const QVector<KeyPattern> & );
00199 
00200     const QVector<MousePattern> &mousePattern() const;
00201     const QVector<KeyPattern> &keyPattern() const;
00202 
00203     QVector<MousePattern> &mousePattern();
00204     QVector<KeyPattern> &keyPattern();
00205 
00206     bool mouseMatch( MousePatternCode, const QMouseEvent * ) const;
00207     bool keyMatch( KeyPatternCode, const QKeyEvent * ) const;
00208 
00209 protected:
00210     virtual bool mouseMatch( const MousePattern &, const QMouseEvent * ) const;
00211     virtual bool keyMatch( const KeyPattern &, const QKeyEvent * ) const;
00212 
00213 private:
00214 
00215 #if defined(_MSC_VER)
00216 #pragma warning(push)
00217 #pragma warning(disable: 4251)
00218 #endif
00219     QVector<MousePattern> d_mousePattern;
00220     QVector<KeyPattern> d_keyPattern;
00221 #if defined(_MSC_VER)
00222 #pragma warning(pop)
00223 #endif
00224 };
00225 
00227 inline bool operator==( QwtEventPattern::MousePattern b1,
00228     QwtEventPattern::MousePattern  b2 )
00229 {
00230     return b1.button == b2.button && b1.modifiers == b2.modifiers;
00231 }
00232 
00234 inline bool operator==( QwtEventPattern::KeyPattern b1,
00235    QwtEventPattern::KeyPattern  b2 )
00236 {
00237     return b1.key == b2.key && b1.modifiers == b2.modifiers;
00238 }
00239 
00240 #endif


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:56