Miam-Player  0.8.0
A nice music player
qxtglobalshortcut_p.h
Go to the documentation of this file.
1 #ifndef QXTGLOBALSHORTCUT_P_H
2 /****************************************************************************
3 ** Copyright (c) 2006 - 2011, the LibQxt project.
4 ** See the Qxt AUTHORS file for a list of authors and copyright holders.
5 ** All rights reserved.
6 **
7 ** Redistribution and use in source and binary forms, with or without
8 ** modification, are permitted provided that the following conditions are met:
9 ** * Redistributions of source code must retain the above copyright
10 ** notice, this list of conditions and the following disclaimer.
11 ** * Redistributions in binary form must reproduce the above copyright
12 ** notice, this list of conditions and the following disclaimer in the
13 ** documentation and/or other materials provided with the distribution.
14 ** * Neither the name of the LibQxt project nor the
15 ** names of its contributors may be used to endorse or promote products
16 ** derived from this software without specific prior written permission.
17 **
18 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 ** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
22 ** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 **
29 ** <http://libqxt.org> <foundation@libqxt.org>
30 *****************************************************************************/
31 
32 #define QXTGLOBALSHORTCUT_P_H
33 
34 #include "qxtglobalshortcut.h"
35 #include <QAbstractEventDispatcher>
36 #include <QKeySequence>
37 #include <QHash>
38 
39 #include <QAbstractNativeEventFilter>
40 
41 class QxtGlobalShortcutPrivate : public QxtPrivate<QxtGlobalShortcut>
42 #ifndef Q_OS_MAC
43  ,public QAbstractNativeEventFilter
44 #endif
45 {
46 public:
50 
51  bool enabled;
52  Qt::Key key;
53  Qt::KeyboardModifiers mods;
54 
55  bool setShortcut(const QKeySequence& shortcut);
56  bool unsetShortcut();
57 
58  static bool error;
59 #ifndef Q_OS_MAC
60  static int ref;
61  virtual bool nativeEventFilter(const QByteArray & eventType, void * message, long * result) override;
62 #endif // Q_OS_MAC
63 
64  static void activateShortcut(quint32 nativeKey, quint32 nativeMods);
65 
66 private:
67  static quint32 nativeKeycode(Qt::Key keycode);
68  static quint32 nativeModifiers(Qt::KeyboardModifiers modifiers);
69 
70  static bool registerShortcut(quint32 nativeKey, quint32 nativeMods);
71  static bool unregisterShortcut(quint32 nativeKey, quint32 nativeMods);
72 
73  static QHash<QPair<quint32, quint32>, QxtGlobalShortcut*> shortcuts;
74 };
75 
76 #endif // QXTGLOBALSHORTCUT_P_H
bool enabled
Definition: qxtglobalshortcut_p.h:51
Definition: qxtglobalshortcut_p.h:41
virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override
QxtWidgets
Definition: qxtglobalshortcut.h:40
~QxtGlobalShortcutPrivate()
Definition: qxtglobalshortcut.cpp:55
Definition: qxtglobal.h:55
bool setShortcut(const QKeySequence &shortcut)
Definition: qxtglobalshortcut.cpp:68
static void activateShortcut(quint32 nativeKey, quint32 nativeMods)
Definition: qxtglobalshortcut.cpp:103
#define QXT_DECLARE_PUBLIC(PUB)
Definition: qxtglobal.h:50
Qt::Key key
Definition: qxtglobalshortcut_p.h:52
QxtGlobalShortcutPrivate()
Definition: qxtglobalshortcut.cpp:41
static bool error
Definition: qxtglobalshortcut_p.h:58
static int ref
Definition: qxtglobalshortcut_p.h:60
Qt::KeyboardModifiers mods
Definition: qxtglobalshortcut_p.h:53
bool unsetShortcut()
Definition: qxtglobalshortcut.cpp:85