1 /* This file is part of Clementine. 2 Copyright 2010, David Sansome <davidsansome@gmail.com> 3 Copyright 2010, 2014, John Maguire <john.maguire@gmail.com> 4 Copyright 2014, Krzysztof Sobiecki <sobkas@gmail.com> 5 6 Clementine is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 Clementine is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with Clementine. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef CORE_MACGLOBALSHORTCUTBACKEND_H_ 21 #define CORE_MACGLOBALSHORTCUTBACKEND_H_ 22 23 #include <memory> 24 25 #include "globalshortcutbackend.h" 26 27 #include <QKeySequence> 28 #include <QMap> 29 30 class MacGlobalShortcutBackendPrivate; 31 class QAction; 32 33 class MacGlobalShortcutBackend : public GlobalShortcutBackend { 34 Q_OBJECT 35 36 public: 37 explicit MacGlobalShortcutBackend(GlobalShortcuts* parent); 38 virtual ~MacGlobalShortcutBackend(); 39 40 bool IsAccessibilityEnabled() const; 41 void ShowAccessibilityDialog(); 42 43 void MacMediaKeyPressed(int key); 44 45 protected: 46 bool DoRegister(); 47 void DoUnregister(); 48 49 private: 50 bool KeyPressed(const QKeySequence& sequence); 51 52 QMap<QKeySequence, QAction*> shortcuts_; 53 54 friend class MacGlobalShortcutBackendPrivate; 55 std::unique_ptr<MacGlobalShortcutBackendPrivate> p_; 56 }; 57 58 #endif // CORE_MACGLOBALSHORTCUTBACKEND_H_ 59