// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ #define ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_ #include "athena/athena_export.h" namespace aura { class Window; } namespace ui { class EventTarget; } namespace athena { class AcceleratorManager; class ATHENA_EXPORT InputManager { public: // Creates and deletes the singleton object of the InputManager // implementation. static InputManager* Create(); static InputManager* Get(); static void Shutdown(); // TODO(oshima): Fix the initialization process and replace this // with EnvObserver::WindowInitialized virtual void OnRootWindowCreated(aura::Window* root_window) = 0; virtual ui::EventTarget* GetTopmostEventTarget() = 0; virtual AcceleratorManager* GetAcceleratorManager() = 0; virtual ~InputManager() {} }; } // namespace athena #endif // ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_