• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_
6 #define ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_
7 
8 #include "athena/athena_export.h"
9 
10 namespace aura {
11 class Window;
12 }
13 
14 namespace ui {
15 class EventTarget;
16 }
17 
18 namespace athena {
19 class AcceleratorManager;
20 
21 class ATHENA_EXPORT InputManager {
22  public:
23   // Creates and deletes the singleton object of the InputManager
24   // implementation.
25   static InputManager* Create();
26   static InputManager* Get();
27   static void Shutdown();
28 
29   // TODO(oshima): Fix the initialization process and replace this
30   // with EnvObserver::WindowInitialized
31   virtual void OnRootWindowCreated(aura::Window* root_window) = 0;
32 
33   virtual ui::EventTarget* GetTopmostEventTarget() = 0;
34   virtual AcceleratorManager* GetAcceleratorManager() = 0;
35 
~InputManager()36   virtual ~InputManager() {}
37 };
38 
39 }  // namespace athena
40 
41 #endif  // ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_
42