1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/extensions/global_shortcut_listener_mac.h"
7 #include "content/public/browser/browser_thread.h"
9 using content::BrowserThread;
13 static base::LazyInstance<extensions::GlobalShortcutListenerMac> instance =
14 LAZY_INSTANCE_INITIALIZER;
18 namespace extensions {
21 GlobalShortcutListener* GlobalShortcutListener::GetInstance() {
22 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
23 return instance.Pointer();
26 GlobalShortcutListenerMac::GlobalShortcutListenerMac()
27 : is_listening_(false) {
28 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
30 // TODO(implementor): Remove this.
31 LOG(ERROR) << "GlobalShortcutListenerMac object created";
34 GlobalShortcutListenerMac::~GlobalShortcutListenerMac() {
39 void GlobalShortcutListenerMac::StartListening() {
40 DCHECK(!is_listening_); // Don't start twice.
45 void GlobalShortcutListenerMac::StopListening() {
46 DCHECK(is_listening_); // No point if we are not already listening.
48 is_listening_ = false;
51 void GlobalShortcutListenerMac::RegisterAccelerator(
52 const ui::Accelerator& accelerator,
53 GlobalShortcutListener::Observer* observer) {
56 // 1) Convert modifiers to platform specific modifiers.
57 // 2) Register for the hotkey.
58 // 3) If not successful, log why.
59 // 4) Else, call base class RegisterAccelerator.
61 GlobalShortcutListener::RegisterAccelerator(accelerator, observer);
64 void GlobalShortcutListenerMac::UnregisterAccelerator(
65 const ui::Accelerator& accelerator,
66 GlobalShortcutListener::Observer* observer) {
69 // 1) Unregister for the hotkey.
70 // 2) Call base class UnregisterAccelerator.
72 GlobalShortcutListener::UnregisterAccelerator(accelerator, observer);
75 } // namespace extensions