OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ | 5 #ifndef ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ |
6 #define ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ | 6 #define ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ |
7 | 7 |
8 #include "athena/athena_export.h" | 8 #include "athena/athena_export.h" |
9 | 9 |
10 namespace aura { | 10 namespace aura { |
11 class Window; | 11 class Window; |
12 } | 12 } |
13 | 13 |
14 namespace ui { | 14 namespace ui { |
15 class EventTarget; | 15 class EventTarget; |
16 } | 16 } |
17 | 17 |
18 namespace athena { | 18 namespace athena { |
19 class AcceleratorManager; | 19 class AcceleratorManager; |
20 | 20 |
21 class PowerButtonObserver { | |
22 public: | |
23 enum State { | |
24 PRESSED, | |
25 LONG_PRESSED, | |
26 RELEASED, | |
27 }; | |
28 | |
29 virtual void OnPowerButtonStateChanged(State state) = 0; | |
30 }; | |
31 | |
32 class ATHENA_EXPORT InputManager { | 21 class ATHENA_EXPORT InputManager { |
33 public: | 22 public: |
34 // Creates and deletes the singleton object of the InputManager | 23 // Creates and deletes the singleton object of the InputManager |
35 // implementation. | 24 // implementation. |
36 static InputManager* Create(); | 25 static InputManager* Create(); |
37 static InputManager* Get(); | 26 static InputManager* Get(); |
38 static void Shutdown(); | 27 static void Shutdown(); |
39 | 28 |
40 // TODO(oshima): Fix the initialization process and replace this | 29 // TODO(oshima): Fix the initialization process and replace this |
41 // with EnvObserver::WindowInitialized | 30 // with EnvObserver::WindowInitialized |
42 virtual void OnRootWindowCreated(aura::Window* root_window) = 0; | 31 virtual void OnRootWindowCreated(aura::Window* root_window) = 0; |
43 | 32 |
44 // Add/remove power button observer. | |
45 virtual void AddPowerButtonObserver(PowerButtonObserver* observer) = 0; | |
46 virtual void RemovePowerButtonObserver(PowerButtonObserver* observer) = 0; | |
47 | |
48 virtual ui::EventTarget* GetTopmostEventTarget() = 0; | 33 virtual ui::EventTarget* GetTopmostEventTarget() = 0; |
49 virtual AcceleratorManager* GetAcceleratorManager() = 0; | 34 virtual AcceleratorManager* GetAcceleratorManager() = 0; |
50 | 35 |
51 virtual ~InputManager() {} | 36 virtual ~InputManager() {} |
52 }; | 37 }; |
53 | 38 |
54 } // namespace athena | 39 } // namespace athena |
55 | 40 |
56 #endif // ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ | 41 #endif // ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ |
OLD | NEW |