aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/hotkey/hotkeymanager.h
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-02-14 11:17:11 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-02-14 11:17:11 +0000
commit5db018499bf3f5cfd82a9e5dbc11df016d1d1f01 (patch)
tree4c3c70973b18ce65ac2340ee228a6b0e26a91df5 /src/plugins/General/hotkey/hotkeymanager.h
parent4e3ff2892f5401b09cf6875808f34bbbff05ae9b (diff)
downloadqmmp-5db018499bf3f5cfd82a9e5dbc11df016d1d1f01.tar.gz
qmmp-5db018499bf3f5cfd82a9e5dbc11df016d1d1f01.tar.bz2
qmmp-5db018499bf3f5cfd82a9e5dbc11df016d1d1f01.zip
global hotkey support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@787 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/hotkey/hotkeymanager.h')
-rw-r--r--src/plugins/General/hotkey/hotkeymanager.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/plugins/General/hotkey/hotkeymanager.h b/src/plugins/General/hotkey/hotkeymanager.h
new file mode 100644
index 000000000..0db01b79e
--- /dev/null
+++ b/src/plugins/General/hotkey/hotkeymanager.h
@@ -0,0 +1,89 @@
+/***************************************************************************
+ * Copyright (C) 2009 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+#ifndef HOTKEYMANAGER_H
+#define HOTKEYMANAGER_H
+
+#include <QString>
+#include <QTableWidgetItem>
+#include <QList>
+#include <qmmpui/general.h>
+
+class QEvent;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+
+class Hotkey
+{
+public:
+ enum Action
+ {
+ PLAY = QTableWidgetItem::UserType,
+ STOP,
+ PAUSE,
+ PLAY_PAUSE,
+ NEXT,
+ PREVIOUS,
+ SHOW_HIDE
+ };
+
+ Hotkey()
+ {
+ action = PLAY;
+ key = 0;
+ mod = 0;
+ code = 0;
+ }
+
+ quint32 mod;
+ quint32 key;
+ int action;
+ int code;
+ quint32 defaultKey();
+ static quint32 defaultKey(int act);
+};
+
+class HotkeyManager : public General
+{
+ Q_OBJECT
+public:
+ HotkeyManager(QObject *parent = 0);
+
+ ~HotkeyManager();
+
+ static const QString getKeyString(quint32 key, quint32 modifiers);
+ static QList<long> ignModifiersList();
+
+protected:
+ virtual bool eventFilter(QObject* o, QEvent* e);
+
+private:
+ static void ensureModifiers();
+ QList <Hotkey *> m_grabbedKeys;
+ static long m_alt_mask;
+ static long m_meta_mask;
+ static long m_super_mask;
+ static long m_hyper_mask;
+ static long m_numlock_mask;
+ static bool m_haveMods;
+};
+
+#endif