Home | History | Annotate | Download | only in public
      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 
     36   virtual ~InputManager() {}
     37 };
     38 
     39 }  // namespace athena
     40 
     41 #endif  // ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_
     42