blob: cc7017530f98ee41d6cf1ea00fedf1620d0f4619 [file] [log] [blame]
// 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_