summaryrefslogtreecommitdiffstats
path: root/athena/input
diff options
context:
space:
mode:
authorpkotwicz <pkotwicz@chromium.org>2015-01-21 18:15:00 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-22 02:15:50 +0000
commit9c19c84347ec4093b04e9ff205bba01d5265f803 (patch)
tree2cdee769bc86259f721827342faf6d0d96e785d0 /athena/input
parent7df6ea9c6c0cd8fee6eb5c5d29a4791f1c7c617e (diff)
downloadchromium_src-9c19c84347ec4093b04e9ff205bba01d5265f803.zip
chromium_src-9c19c84347ec4093b04e9ff205bba01d5265f803.tar.gz
chromium_src-9c19c84347ec4093b04e9ff205bba01d5265f803.tar.bz2
Delete athena/
Athena is deprecated and is not maintained. Delete athena/ BUG=440818 TEST=None TBR=oshima, sky Review URL: https://codereview.chromium.org/863033002 Cr-Commit-Position: refs/heads/master@{#312526}
Diffstat (limited to 'athena/input')
-rw-r--r--athena/input/DEPS21
-rw-r--r--athena/input/accelerator_manager_impl.cc368
-rw-r--r--athena/input/accelerator_manager_impl.h90
-rw-r--r--athena/input/accelerator_manager_unittest.cc143
-rw-r--r--athena/input/input_manager_impl.cc116
-rw-r--r--athena/input/input_manager_impl.h65
-rw-r--r--athena/input/input_manager_unittest.cc120
-rw-r--r--athena/input/power_button_controller.cc131
-rw-r--r--athena/input/power_button_controller.h56
-rw-r--r--athena/input/public/DEPS4
-rw-r--r--athena/input/public/accelerator_manager.h96
-rw-r--r--athena/input/public/input_manager.h56
12 files changed, 0 insertions, 1266 deletions
diff --git a/athena/input/DEPS b/athena/input/DEPS
deleted file mode 100644
index 36df410..0000000
--- a/athena/input/DEPS
+++ /dev/null
@@ -1,21 +0,0 @@
-include_rules = [
- "+chromeos",
- "+ui/aura",
- "+ui/base",
- "+ui/events",
- "+ui/wm/core",
- "+ui/wm/public",
- "+ui/views",
-]
-
-specific_include_rules = {
- # exported for test.
- "input_manager_impl\.h": [
- "+athena/athena_export.h",
- ],
- # allows for test.
- ".*test\.cc": [
- "+athena/activity/public",
- "+athena/wm/public",
- ],
-}
diff --git a/athena/input/accelerator_manager_impl.cc b/athena/input/accelerator_manager_impl.cc
deleted file mode 100644
index c1e037a..0000000
--- a/athena/input/accelerator_manager_impl.cc
+++ /dev/null
@@ -1,368 +0,0 @@
-// 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.
-
-#include "athena/input/accelerator_manager_impl.h"
-
-#include "athena/input/public/input_manager.h"
-#include "athena/util/switches.h"
-#include "base/logging.h"
-#include "ui/aura/window.h"
-#include "ui/base/accelerators/accelerator_manager.h"
-#include "ui/events/event.h"
-#include "ui/events/event_target.h"
-#include "ui/views/focus/focus_manager.h"
-#include "ui/views/focus/focus_manager_delegate.h"
-#include "ui/views/focus/focus_manager_factory.h"
-#include "ui/wm/core/accelerator_delegate.h"
-#include "ui/wm/core/accelerator_filter.h"
-#include "ui/wm/core/nested_accelerator_controller.h"
-#include "ui/wm/core/nested_accelerator_delegate.h"
-#include "ui/wm/public/dispatcher_client.h"
-
-namespace athena {
-
-// This wrapper interface provides a common interface that handles global
-// accelerators as well as local accelerators.
-class AcceleratorManagerImpl::AcceleratorWrapper {
- public:
- virtual ~AcceleratorWrapper() {}
- virtual void Register(const ui::Accelerator& accelerator,
- ui::AcceleratorTarget* target) = 0;
- virtual void Unregister(const ui::Accelerator& accelerator,
- ui::AcceleratorTarget* target) = 0;
- virtual bool Process(const ui::Accelerator& accelerator) = 0;
- virtual ui::AcceleratorTarget* GetCurrentTarget(
- const ui::Accelerator& accelerator) const = 0;
-};
-
-namespace {
-
-// Accelerators inside nested message loop are handled by
-// wm::NestedAcceleratorController while accelerators in normal case are
-// handled by wm::AcceleratorFilter. These delegates act bridges in these
-// two different environment so that AcceleratorManagerImpl can handle
-// accelerators in an uniform way.
-
-class NestedAcceleratorDelegate : public wm::NestedAcceleratorDelegate {
- public:
- explicit NestedAcceleratorDelegate(
- AcceleratorManagerImpl* accelerator_manager)
- : accelerator_manager_(accelerator_manager) {}
- ~NestedAcceleratorDelegate() override {}
-
- private:
- // wm::NestedAcceleratorDelegate:
- Result ProcessAccelerator(const ui::Accelerator& accelerator) override {
- return accelerator_manager_->Process(accelerator) ? RESULT_PROCESSED
- : RESULT_NOT_PROCESSED;
- }
-
- AcceleratorManagerImpl* accelerator_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(NestedAcceleratorDelegate);
-};
-
-class AcceleratorDelegate : public wm::AcceleratorDelegate {
- public:
- explicit AcceleratorDelegate(AcceleratorManagerImpl* accelerator_manager)
- : accelerator_manager_(accelerator_manager) {}
- ~AcceleratorDelegate() override {}
-
- private:
- // wm::AcceleratorDelegate:
- bool ProcessAccelerator(const ui::KeyEvent& event,
- const ui::Accelerator& accelerator,
- KeyType key_type) override {
- aura::Window* target = static_cast<aura::Window*>(event.target());
- if (!target->IsRootWindow() &&
- !accelerator_manager_->IsRegistered(accelerator, AF_RESERVED)) {
- // TODO(oshima): do the same when the active window is in fullscreen.
- return false;
- }
- return accelerator_manager_->Process(accelerator);
- }
-
- AcceleratorManagerImpl* accelerator_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(AcceleratorDelegate);
-};
-
-class FocusManagerDelegate : public views::FocusManagerDelegate {
- public:
- explicit FocusManagerDelegate(AcceleratorManagerImpl* accelerator_manager)
- : accelerator_manager_(accelerator_manager) {}
- ~FocusManagerDelegate() override {}
-
- bool ProcessAccelerator(const ui::Accelerator& accelerator) override {
- return accelerator_manager_->Process(accelerator);
- }
-
- ui::AcceleratorTarget* GetCurrentTargetForAccelerator(
- const ui::Accelerator& accelerator) const override {
- return accelerator_manager_->IsRegistered(accelerator, AF_NONE)
- ? accelerator_manager_
- : nullptr;
- }
-
- private:
- AcceleratorManagerImpl* accelerator_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(FocusManagerDelegate);
-};
-
-// Key strokes must be sent to web contents to give them a chance to
-// consume them unless they are reserved, and unhandled key events are
-// sent back to focus manager asynchronously. This installs the athena's
-// focus manager that handles athena shell's accelerators.
-class FocusManagerFactory : public views::FocusManagerFactory {
- public:
- explicit FocusManagerFactory(AcceleratorManagerImpl* accelerator_manager)
- : accelerator_manager_(accelerator_manager) {}
- ~FocusManagerFactory() override {}
-
- views::FocusManager* CreateFocusManager(views::Widget* widget,
- bool desktop_widget) override {
- return new views::FocusManager(
- widget,
- desktop_widget ? nullptr
- : new FocusManagerDelegate(accelerator_manager_));
- }
-
- private:
- AcceleratorManagerImpl* accelerator_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(FocusManagerFactory);
-};
-
-class UIAcceleratorManagerWrapper
- : public AcceleratorManagerImpl::AcceleratorWrapper {
- public:
- UIAcceleratorManagerWrapper()
- : ui_accelerator_manager_(new ui::AcceleratorManager) {}
- ~UIAcceleratorManagerWrapper() override {}
-
- virtual void Register(const ui::Accelerator& accelerator,
- ui::AcceleratorTarget* target) override {
- ui_accelerator_manager_->Register(
- accelerator, ui::AcceleratorManager::kNormalPriority, target);
- }
-
- virtual void Unregister(const ui::Accelerator& accelerator,
- ui::AcceleratorTarget* target) override {
- ui_accelerator_manager_->Unregister(accelerator, target);
- }
-
- virtual bool Process(const ui::Accelerator& accelerator) override {
- return ui_accelerator_manager_->Process(accelerator);
- }
-
- virtual ui::AcceleratorTarget* GetCurrentTarget(
- const ui::Accelerator& accelerator) const override {
- return ui_accelerator_manager_->GetCurrentTarget(accelerator);
- }
-
- private:
- scoped_ptr<ui::AcceleratorManager> ui_accelerator_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(UIAcceleratorManagerWrapper);
-};
-
-class FocusManagerWrapper : public AcceleratorManagerImpl::AcceleratorWrapper {
- public:
- explicit FocusManagerWrapper(views::FocusManager* focus_manager)
- : focus_manager_(focus_manager) {}
- ~FocusManagerWrapper() override {}
-
- virtual void Register(const ui::Accelerator& accelerator,
- ui::AcceleratorTarget* target) override {
- return focus_manager_->RegisterAccelerator(
- accelerator, ui::AcceleratorManager::kNormalPriority, target);
- }
-
- virtual void Unregister(const ui::Accelerator& accelerator,
- ui::AcceleratorTarget* target) override {
- focus_manager_->UnregisterAccelerator(accelerator, target);
- }
-
- virtual bool Process(const ui::Accelerator& accelerator) override {
- NOTREACHED();
- return true;
- }
-
- virtual ui::AcceleratorTarget* GetCurrentTarget(
- const ui::Accelerator& accelerator) const override {
- return focus_manager_->GetCurrentTargetForAccelerator(accelerator);
- }
-
- private:
- views::FocusManager* focus_manager_;
-
- DISALLOW_COPY_AND_ASSIGN(FocusManagerWrapper);
-};
-
-} // namespace
-
-class AcceleratorManagerImpl::InternalData {
- public:
- InternalData(int command_id, AcceleratorHandler* handler, int flags)
- : command_id_(command_id), handler_(handler), flags_(flags) {}
-
- bool IsNonAutoRepeatable() const { return flags_ & AF_NON_AUTO_REPEATABLE; }
- bool IsDebug() const { return flags_ & AF_DEBUG; }
- int flags() const { return flags_; }
-
- bool IsCommandEnabled() const {
- return handler_->IsCommandEnabled(command_id_);
- }
-
- bool OnAcceleratorFired(const ui::Accelerator& accelerator) {
- return handler_->OnAcceleratorFired(command_id_, accelerator);
- }
-
- private:
- int command_id_;
- AcceleratorHandler* handler_;
- int flags_;
-
- // This class is copyable by design.
-};
-
-// static
-AcceleratorManagerImpl*
-AcceleratorManagerImpl::CreateGlobalAcceleratorManager() {
- return new AcceleratorManagerImpl(new UIAcceleratorManagerWrapper(), true);
-}
-
-scoped_ptr<AcceleratorManager> AcceleratorManagerImpl::CreateForFocusManager(
- views::FocusManager* focus_manager) {
- return scoped_ptr<AcceleratorManager>(
- new AcceleratorManagerImpl(new FocusManagerWrapper(focus_manager),
- false)).Pass();
-}
-
-AcceleratorManagerImpl::~AcceleratorManagerImpl() {
- nested_accelerator_controller_.reset();
- accelerator_filter_.reset();
- // Reset to use the default focus manager because the athena's
- // FocusManager has the reference to this object.
- if (global_)
- views::FocusManagerFactory::Install(nullptr);
-}
-
-void AcceleratorManagerImpl::Init() {
- if (global_)
- views::FocusManagerFactory::Install(new FocusManagerFactory(this));
-
- ui::EventTarget* toplevel = InputManager::Get()->GetTopmostEventTarget();
- nested_accelerator_controller_.reset(
- new wm::NestedAcceleratorController(new NestedAcceleratorDelegate(this)));
-
- scoped_ptr<wm::AcceleratorDelegate> accelerator_delegate(
- new AcceleratorDelegate(this));
-
- accelerator_filter_.reset(
- new wm::AcceleratorFilter(accelerator_delegate.Pass(),
- accelerator_history_.get()));
- toplevel->AddPreTargetHandler(accelerator_filter_.get());
-}
-
-void AcceleratorManagerImpl::OnRootWindowCreated(aura::Window* root_window) {
- aura::client::SetDispatcherClient(root_window,
- nested_accelerator_controller_.get());
-}
-
-bool AcceleratorManagerImpl::Process(const ui::Accelerator& accelerator) {
- return accelerator_wrapper_->Process(accelerator);
-}
-
-bool AcceleratorManagerImpl::IsRegistered(const ui::Accelerator& accelerator,
- int flags) const {
- std::map<ui::Accelerator, InternalData>::const_iterator iter =
- accelerators_.find(accelerator);
- if (iter == accelerators_.end())
- return false;
- DCHECK(accelerator_wrapper_->GetCurrentTarget(accelerator));
- return flags == AF_NONE || iter->second.flags() & flags;
-}
-
-AcceleratorManagerImpl::AcceleratorManagerImpl(
- AcceleratorWrapper* accelerator_wrapper,
- bool global)
- : accelerator_wrapper_(accelerator_wrapper),
- accelerator_history_(new ui::AcceleratorHistory),
- debug_accelerators_enabled_(switches::IsDebugAcceleratorsEnabled()),
- global_(global) {
-}
-
-void AcceleratorManagerImpl::RegisterAccelerators(
- const AcceleratorData accelerators[],
- size_t num_accelerators,
- AcceleratorHandler* handler) {
- for (size_t i = 0; i < num_accelerators; ++i)
- RegisterAccelerator(accelerators[i], handler);
-}
-
-void AcceleratorManagerImpl::SetDebugAcceleratorsEnabled(bool enabled) {
- debug_accelerators_enabled_ = enabled;
-}
-
-bool AcceleratorManagerImpl::AcceleratorPressed(
- const ui::Accelerator& accelerator) {
- std::map<ui::Accelerator, InternalData>::iterator iter =
- accelerators_.find(accelerator);
- DCHECK(iter != accelerators_.end());
- if (iter == accelerators_.end())
- return false;
- InternalData& data = iter->second;
- if (data.IsDebug() && !debug_accelerators_enabled_)
- return false;
- if (accelerator.IsRepeat() && data.IsNonAutoRepeatable())
- return false;
- return data.IsCommandEnabled() ? data.OnAcceleratorFired(accelerator) : false;
-}
-
-bool AcceleratorManagerImpl::CanHandleAccelerators() const {
- return true;
-}
-
-void AcceleratorManagerImpl::RegisterAccelerator(
- const AcceleratorData& accelerator_data,
- AcceleratorHandler* handler) {
- ui::Accelerator accelerator(accelerator_data.keycode,
- accelerator_data.keyevent_flags);
- accelerator.set_type(accelerator_data.trigger_event == TRIGGER_ON_PRESS
- ? ui::ET_KEY_PRESSED
- : ui::ET_KEY_RELEASED);
- accelerator_wrapper_->Register(accelerator, this);
- accelerators_.insert(
- std::make_pair(accelerator,
- InternalData(accelerator_data.command_id,
- handler,
- accelerator_data.accelerator_flags)));
-}
-
-void AcceleratorManagerImpl::UnregisterAccelerator(
- const AcceleratorData& accelerator_data,
- AcceleratorHandler* handler) {
- ui::Accelerator accelerator(accelerator_data.keycode,
- accelerator_data.keyevent_flags);
- accelerator.set_type(accelerator_data.trigger_event == TRIGGER_ON_PRESS
- ? ui::ET_KEY_PRESSED
- : ui::ET_KEY_RELEASED);
- accelerator_wrapper_->Unregister(accelerator, this);
- accelerators_.erase(accelerator);
-}
-
-// static
-AcceleratorManager* AcceleratorManager::Get() {
- return InputManager::Get()->GetAcceleratorManager();
-}
-
-// static
-scoped_ptr<AcceleratorManager> AcceleratorManager::CreateForFocusManager(
- views::FocusManager* focus_manager) {
- return AcceleratorManagerImpl::CreateForFocusManager(focus_manager).Pass();
-}
-
-} // namespace athena
diff --git a/athena/input/accelerator_manager_impl.h b/athena/input/accelerator_manager_impl.h
deleted file mode 100644
index bd0c9a7..0000000
--- a/athena/input/accelerator_manager_impl.h
+++ /dev/null
@@ -1,90 +0,0 @@
-// 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_ACCELERATOR_MANAGER_H_
-#define ATHENA_INPUT_ACCELERATOR_MANAGER_H_
-
-#include "athena/input/public/accelerator_manager.h"
-
-#include <map>
-
-#include "base/macros.h"
-#include "ui/base/accelerators/accelerator.h"
-#include "ui/base/accelerators/accelerator_history.h"
-#include "ui/events/event_target_iterator.h"
-
-namespace aura {
-class Window;
-}
-
-namespace wm {
-class AcceleratorFilter;
-class NestedAcceleratorController;
-}
-
-namespace athena {
-
-// AcceleratorManagerImpl provides a API to register accelerators
-// for athena modules. It hides various details on accelerator handling
-// such as how to handle accelerator in a nested loop, reserved accelerators
-// and repeated accelerators.
-class AcceleratorManagerImpl : public AcceleratorManager,
- public ui::AcceleratorTarget {
- public:
- class AcceleratorWrapper;
-
- // Creates an AcceleratorManager for global accelerators.
- // This is the one returned by AcceleratorManager::Get()
- static AcceleratorManagerImpl* CreateGlobalAcceleratorManager();
-
- // Creates an AcceleratorManager for focus manager.
- static scoped_ptr<AcceleratorManager> CreateForFocusManager(
- views::FocusManager* focus_manager);
-
- ~AcceleratorManagerImpl() override;
-
- void Init();
-
- void OnRootWindowCreated(aura::Window* root_window);
-
- bool Process(const ui::Accelerator& accelerator);
-
- // AcceleratorManager:
- // This is made public so that implementation classes can use this.
- virtual bool IsRegistered(const ui::Accelerator& accelerator,
- int flags) const override;
-
- private:
- class InternalData;
-
- AcceleratorManagerImpl(AcceleratorWrapper* wrapper, bool global);
-
- // AcceleratorManager:
- virtual void RegisterAccelerators(const AcceleratorData accelerators[],
- size_t num_accelerators,
- AcceleratorHandler* handler) override;
- virtual void RegisterAccelerator(const AcceleratorData& accelerator_data,
- AcceleratorHandler* handler) override;
- virtual void UnregisterAccelerator(const AcceleratorData& accelerator_data,
- AcceleratorHandler* handler) override;
- virtual void SetDebugAcceleratorsEnabled(bool enabled) override;
-
- // ui::AcceleratorTarget:
- virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) override;
- virtual bool CanHandleAccelerators() const override;
-
- std::map<ui::Accelerator, InternalData> accelerators_;
- scoped_ptr<AcceleratorWrapper> accelerator_wrapper_;
- scoped_ptr<ui::AcceleratorHistory> accelerator_history_;
- scoped_ptr<wm::AcceleratorFilter> accelerator_filter_;
- scoped_ptr<wm::NestedAcceleratorController> nested_accelerator_controller_;
- bool debug_accelerators_enabled_;
- bool global_;
-
- DISALLOW_COPY_AND_ASSIGN(AcceleratorManagerImpl);
-};
-
-} // namespace athena
-
-#endif // ATHENA_INPUT_ACCELERATOR_MANAGER_H_
diff --git a/athena/input/accelerator_manager_unittest.cc b/athena/input/accelerator_manager_unittest.cc
deleted file mode 100644
index 3298b11..0000000
--- a/athena/input/accelerator_manager_unittest.cc
+++ /dev/null
@@ -1,143 +0,0 @@
-// 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.
-
-#include "athena/input/public/accelerator_manager.h"
-
-#include "athena/activity/public/activity.h"
-#include "athena/activity/public/activity_factory.h"
-#include "athena/input/public/input_manager.h"
-#include "athena/test/base/athena_test_base.h"
-#include "athena/wm/public/window_manager.h"
-#include "ui/events/test/event_generator.h"
-
-namespace athena {
-namespace {
-
-const int kInvalidCommandId = -1;
-
-class TestHandler : public AcceleratorHandler {
- public:
- TestHandler() : fired_command_id_(kInvalidCommandId), enabled_(true) {}
- ~TestHandler() override {}
-
- void set_enabled(bool enabled) { enabled_ = enabled; }
-
- int GetFiredCommandIdAndReset() {
- int fired = fired_command_id_;
- fired_command_id_ = kInvalidCommandId;
- return fired;
- }
-
- private:
- // AcceleratorHandler:
- virtual bool IsCommandEnabled(int command_id) const override {
- return enabled_;
- }
- virtual bool OnAcceleratorFired(int command_id,
- const ui::Accelerator& accelerator) override {
- fired_command_id_ = command_id;
- return true;
- }
-
- int fired_command_id_;
- bool enabled_;
-
- DISALLOW_COPY_AND_ASSIGN(TestHandler);
-};
-
-} // namespace
-
-typedef test::AthenaTestBase AcceleratorManagerTest;
-
-TEST_F(AcceleratorManagerTest, Basic) {
- enum TestCommandId {
- COMMAND_A,
- COMMAND_B,
- COMMAND_C,
- COMMAND_D,
- COMMAND_E,
- };
- const AcceleratorData data[] = {
- {TRIGGER_ON_PRESS, ui::VKEY_A, ui::EF_SHIFT_DOWN, COMMAND_A, AF_RESERVED},
- {TRIGGER_ON_RELEASE, ui::VKEY_B, ui::EF_SHIFT_DOWN, COMMAND_B,
- AF_RESERVED},
- {TRIGGER_ON_PRESS, ui::VKEY_C, ui::EF_SHIFT_DOWN, COMMAND_C,
- AF_RESERVED | AF_DEBUG},
- {TRIGGER_ON_PRESS, ui::VKEY_D, ui::EF_SHIFT_DOWN, COMMAND_D,
- AF_RESERVED | AF_NON_AUTO_REPEATABLE},
- {TRIGGER_ON_PRESS, ui::VKEY_E, ui::EF_SHIFT_DOWN, COMMAND_E, AF_NONE},
- };
- AcceleratorManager* accelerator_manager =
- InputManager::Get()->GetAcceleratorManager();
- TestHandler test_handler;
- accelerator_manager->RegisterAccelerators(
- data, arraysize(data), &test_handler);
-
- ui::test::EventGenerator generator(root_window());
- generator.PressKey(ui::VKEY_A, ui::EF_NONE);
- EXPECT_EQ(kInvalidCommandId, test_handler.GetFiredCommandIdAndReset());
-
- // Trigger on press.
- generator.PressKey(ui::VKEY_A, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(COMMAND_A, test_handler.GetFiredCommandIdAndReset());
- generator.ReleaseKey(ui::VKEY_A, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(kInvalidCommandId, test_handler.GetFiredCommandIdAndReset());
-
- // Trigger on release.
- generator.PressKey(ui::VKEY_B, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(kInvalidCommandId, test_handler.GetFiredCommandIdAndReset());
- generator.ReleaseKey(ui::VKEY_B, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(COMMAND_B, test_handler.GetFiredCommandIdAndReset());
-
- // Disable command.
- test_handler.set_enabled(false);
- generator.PressKey(ui::VKEY_A, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(kInvalidCommandId, test_handler.GetFiredCommandIdAndReset());
- test_handler.set_enabled(true);
- generator.PressKey(ui::VKEY_A, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(COMMAND_A, test_handler.GetFiredCommandIdAndReset());
-
- // Debug accelerators.
- accelerator_manager->SetDebugAcceleratorsEnabled(false);
- generator.PressKey(ui::VKEY_C, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(kInvalidCommandId, test_handler.GetFiredCommandIdAndReset());
- accelerator_manager->SetDebugAcceleratorsEnabled(true);
- generator.PressKey(ui::VKEY_C, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(COMMAND_C, test_handler.GetFiredCommandIdAndReset());
- accelerator_manager->SetDebugAcceleratorsEnabled(false);
-
- // Non auto repeatable
- generator.PressKey(ui::VKEY_D, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(COMMAND_D, test_handler.GetFiredCommandIdAndReset());
- generator.PressKey(ui::VKEY_D, ui::EF_SHIFT_DOWN | ui::EF_IS_REPEAT);
- EXPECT_EQ(kInvalidCommandId, test_handler.GetFiredCommandIdAndReset());
-
- // TODO(oshima): Add scenario where the key event is consumed by
- // an app.
- generator.PressKey(ui::VKEY_E, ui::EF_SHIFT_DOWN);
- EXPECT_EQ(COMMAND_E, test_handler.GetFiredCommandIdAndReset());
-}
-
-TEST_F(AcceleratorManagerTest, CloseActivity) {
- ActivityFactory* factory = ActivityFactory::Get();
- Activity* activity1 =
- factory->CreateWebActivity(NULL, base::string16(), GURL());
- Activity::Show(activity1);
- Activity::Delete(activity1);
-
- Activity* activity2 =
- factory->CreateWebActivity(NULL, base::string16(), GURL());
- Activity::Show(activity2);
-
- // TODO(oshima): This shouldn't be necessary. Remove this once
- // crbug.com/427113 is fixed.
- RunAllPendingInMessageLoop();
-
- ui::test::EventGenerator generator(root_window());
- generator.PressKey(ui::VKEY_F6, ui::EF_NONE);
- EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive());
- Activity::Delete(activity2);
-}
-
-} // namespace athena
diff --git a/athena/input/input_manager_impl.cc b/athena/input/input_manager_impl.cc
deleted file mode 100644
index bd901b8..0000000
--- a/athena/input/input_manager_impl.cc
+++ /dev/null
@@ -1,116 +0,0 @@
-// 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.
-
-#include "athena/input/input_manager_impl.h"
-
-#include "athena/input/power_button_controller.h"
-#include "base/logging.h"
-#include "ui/aura/env.h"
-#include "ui/aura/window.h"
-
-namespace athena {
-namespace {
-
-InputManager* instance = nullptr;
-
-} // namespace
-
-InputManagerImpl::InputManagerImpl()
- : accelerator_manager_(
- AcceleratorManagerImpl::CreateGlobalAcceleratorManager()),
- power_button_controller_(new PowerButtonController) {
- DCHECK(!instance);
- instance = this;
-}
-
-InputManagerImpl::~InputManagerImpl() {
- DCHECK_EQ(instance, this);
- Shutdown();
- instance = nullptr;
-}
-
-void InputManagerImpl::Init() {
- accelerator_manager_->Init();
- power_button_controller_->InstallAccelerators();
-}
-
-void InputManagerImpl::Shutdown() {
- accelerator_manager_.reset();
-}
-
-void InputManagerImpl::OnRootWindowCreated(aura::Window* root_window) {
- aura::client::SetEventClient(root_window, this);
- accelerator_manager_->OnRootWindowCreated(root_window);
-}
-
-ui::EventTarget* InputManagerImpl::GetTopmostEventTarget() {
- return this;
-}
-
-AcceleratorManager* InputManagerImpl::GetAcceleratorManager() {
- return accelerator_manager_.get();
-}
-
-void InputManagerImpl::AddPowerButtonObserver(PowerButtonObserver* observer) {
- power_button_controller_->AddPowerButtonObserver(observer);
-}
-void InputManagerImpl::RemovePowerButtonObserver(
- PowerButtonObserver* observer) {
- power_button_controller_->RemovePowerButtonObserver(observer);
-}
-
-bool InputManagerImpl::CanProcessEventsWithinSubtree(
- const aura::Window* window) const {
- return window && !window->ignore_events();
-}
-
-ui::EventTarget* InputManagerImpl::GetToplevelEventTarget() {
- return this;
-}
-
-bool InputManagerImpl::CanAcceptEvent(const ui::Event& event) {
- return true;
-}
-
-ui::EventTarget* InputManagerImpl::GetParentTarget() {
- return aura::Env::GetInstance();
-}
-
-scoped_ptr<ui::EventTargetIterator> InputManagerImpl::GetChildIterator() const {
- return scoped_ptr<ui::EventTargetIterator>();
-}
-
-ui::EventTargeter* InputManagerImpl::GetEventTargeter() {
- NOTREACHED();
- return nullptr;
-}
-
-void InputManagerImpl::OnEvent(ui::Event* event) {
-}
-
-int InputManagerImpl::SetPowerButtonTimeoutMsForTest(int timeout) {
- return power_button_controller_->SetPowerButtonTimeoutMsForTest(timeout);
-}
-
-// static
-InputManager* InputManager::Create() {
- (new InputManagerImpl)->Init();
- DCHECK(instance);
- return instance;
-}
-
-// static
-InputManager* InputManager::Get() {
- DCHECK(instance);
- return instance;
-}
-
-// static
-void InputManager::Shutdown() {
- DCHECK(instance);
- delete instance;
- DCHECK(!instance);
-}
-
-} // namespace athena
diff --git a/athena/input/input_manager_impl.h b/athena/input/input_manager_impl.h
deleted file mode 100644
index bfebc34..0000000
--- a/athena/input/input_manager_impl.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// 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_INPUT_MANAGER_IMPL_H_
-#define ATHENA_INPUT_INPUT_MANAGER_IMPL_H_
-
-#include "athena/input/public/input_manager.h"
-
-#include "athena/athena_export.h"
-#include "athena/input/accelerator_manager_impl.h"
-#include "ui/aura/client/event_client.h"
-#include "ui/events/event_target.h"
-
-namespace athena {
-class PowerButtonController;
-
-namespace test {
-class ScopedPowerButtonTimeoutShortener;
-}
-
-class ATHENA_EXPORT InputManagerImpl : public InputManager,
- public ui::EventTarget,
- public aura::client::EventClient {
- public:
- InputManagerImpl();
- ~InputManagerImpl() override;
-
- void Init();
- void Shutdown();
-
- private:
- friend class test::ScopedPowerButtonTimeoutShortener;
-
- // InputManager:
- virtual void OnRootWindowCreated(aura::Window* root_window) override;
- virtual ui::EventTarget* GetTopmostEventTarget() override;
- virtual AcceleratorManager* GetAcceleratorManager() override;
- virtual void AddPowerButtonObserver(PowerButtonObserver* observer) override;
- virtual void RemovePowerButtonObserver(
- PowerButtonObserver* observer) override;
-
- // Overridden from aura::client::EventClient:
- virtual bool CanProcessEventsWithinSubtree(
- const aura::Window* window) const override;
- virtual ui::EventTarget* GetToplevelEventTarget() override;
-
- // ui::EventTarget:
- virtual bool CanAcceptEvent(const ui::Event& event) override;
- virtual ui::EventTarget* GetParentTarget() override;
- virtual scoped_ptr<ui::EventTargetIterator> GetChildIterator() const override;
- virtual ui::EventTargeter* GetEventTargeter() override;
- virtual void OnEvent(ui::Event* event) override;
-
- int SetPowerButtonTimeoutMsForTest(int timeout);
-
- scoped_ptr<AcceleratorManagerImpl> accelerator_manager_;
- scoped_ptr<PowerButtonController> power_button_controller_;
-
- DISALLOW_COPY_AND_ASSIGN(InputManagerImpl);
-};
-
-} // namespace athena
-
-#endif // ATHENA_INPUT_INPUT_MANAGER_IMPL_H_
diff --git a/athena/input/input_manager_unittest.cc b/athena/input/input_manager_unittest.cc
deleted file mode 100644
index 5b0305b..0000000
--- a/athena/input/input_manager_unittest.cc
+++ /dev/null
@@ -1,120 +0,0 @@
-// 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.
-
-#include "athena/input/input_manager_impl.h"
-
-#include "athena/input/public/accelerator_manager.h"
-#include "athena/test/base/athena_test_base.h"
-#include "athena/util/switches.h"
-#include "base/command_line.h"
-#include "base/run_loop.h"
-#include "ui/events/test/event_generator.h"
-
-namespace athena {
-namespace {
-
-class TestPowerButtonObserver : public PowerButtonObserver {
- public:
- TestPowerButtonObserver() : count_(0), state_(RELEASED) {
- InputManager::Get()->AddPowerButtonObserver(this);
- }
- ~TestPowerButtonObserver() override {
- InputManager::Get()->RemovePowerButtonObserver(this);
- }
-
- int count() const { return count_; }
- State state() const { return state_; }
-
- bool WaitForLongPress() {
- run_loop_.Run();
- return state_ == LONG_PRESSED;
- }
-
- private:
- virtual void OnPowerButtonStateChanged(
- PowerButtonObserver::State state) override {
- state_ = state;
- count_++;
- if (state == LONG_PRESSED) {
- DCHECK(run_loop_.running());
- run_loop_.Quit();
- }
- }
- base::RunLoop run_loop_;
- int count_;
- State state_;
-
- DISALLOW_COPY_AND_ASSIGN(TestPowerButtonObserver);
-};
-
-class InputManagerTest : public test::AthenaTestBase {
- public:
- InputManagerTest() {}
- ~InputManagerTest() override {}
-
- void SetUp() override {
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- command_line->AppendSwitch(switches::kEnableDebugAccelerators);
- test::AthenaTestBase::SetUp();
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(InputManagerTest);
-};
-
-} // namespace
-
-namespace test {
-
-class ScopedPowerButtonTimeoutShortener {
- public:
- ScopedPowerButtonTimeoutShortener()
- : original_timeout_(
- GetInputManagerImpl()->SetPowerButtonTimeoutMsForTest(1)) {}
- ~ScopedPowerButtonTimeoutShortener() {
- GetInputManagerImpl()->SetPowerButtonTimeoutMsForTest(original_timeout_);
- }
-
- private:
- InputManagerImpl* GetInputManagerImpl() {
- return static_cast<InputManagerImpl*>(InputManager::Get());
- }
-
- int original_timeout_;
- DISALLOW_COPY_AND_ASSIGN(ScopedPowerButtonTimeoutShortener);
-};
-
-} // namespace test
-
-TEST_F(InputManagerTest, PowerButton) {
- test::ScopedPowerButtonTimeoutShortener shortener;
- TestPowerButtonObserver observer;
-
- ui::test::EventGenerator generator(root_window());
- generator.PressKey(ui::VKEY_P, ui::EF_NONE);
- EXPECT_EQ(0, observer.count());
-
- // Test short press.
- generator.PressKey(ui::VKEY_P, ui::EF_ALT_DOWN);
- EXPECT_EQ(1, observer.count());
- EXPECT_EQ(PowerButtonObserver::PRESSED, observer.state());
- generator.ReleaseKey(ui::VKEY_P, ui::EF_ALT_DOWN);
- EXPECT_EQ(2, observer.count());
- EXPECT_EQ(PowerButtonObserver::RELEASED, observer.state());
-
- // Test long press.
- generator.PressKey(ui::VKEY_P, ui::EF_ALT_DOWN);
- EXPECT_EQ(3, observer.count());
- EXPECT_EQ(PowerButtonObserver::PRESSED, observer.state());
-
- EXPECT_TRUE(observer.WaitForLongPress());
- EXPECT_EQ(4, observer.count());
- EXPECT_EQ(PowerButtonObserver::LONG_PRESSED, observer.state());
-
- generator.ReleaseKey(ui::VKEY_P, ui::EF_ALT_DOWN);
- EXPECT_EQ(5, observer.count());
- EXPECT_EQ(PowerButtonObserver::RELEASED, observer.state());
-}
-
-} // namespace athena
diff --git a/athena/input/power_button_controller.cc b/athena/input/power_button_controller.cc
deleted file mode 100644
index 8dfca82..0000000
--- a/athena/input/power_button_controller.cc
+++ /dev/null
@@ -1,131 +0,0 @@
-// 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.
-
-#include "athena/input/power_button_controller.h"
-
-#include "athena/input/public/accelerator_manager.h"
-#include "chromeos/dbus/dbus_thread_manager.h"
-#include "ui/events/event_constants.h"
-
-namespace athena {
-namespace {
-
-// The amount of time that the power button must be held to be
-// treated as long press.
-const int kLongPressTimeoutMs = 1000;
-
-enum {
- CMD_DEBUG_POWER_BUTTON_PRESSED,
- CMD_DEBUG_POWER_BUTTON_RELEASED,
-};
-
-} // namespace
-
-PowerButtonController::PowerButtonController()
- : power_button_timeout_ms_(kLongPressTimeoutMs),
- brightness_is_zero_(false) {
- chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(
- this);
-}
-
-PowerButtonController::~PowerButtonController() {
- chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(
- this);
-}
-
-void PowerButtonController::AddPowerButtonObserver(
- PowerButtonObserver* observer) {
- observers_.AddObserver(observer);
-}
-
-void PowerButtonController::RemovePowerButtonObserver(
- PowerButtonObserver* observer) {
- observers_.RemoveObserver(observer);
-}
-
-void PowerButtonController::InstallAccelerators() {
- const AcceleratorData accelerator_data[] = {
- {TRIGGER_ON_PRESS,
- ui::VKEY_P,
- ui::EF_ALT_DOWN,
- CMD_DEBUG_POWER_BUTTON_PRESSED,
- AF_DEBUG | AF_NON_AUTO_REPEATABLE},
- {TRIGGER_ON_RELEASE,
- ui::VKEY_P,
- ui::EF_ALT_DOWN,
- CMD_DEBUG_POWER_BUTTON_RELEASED,
- AF_DEBUG},
- };
- AcceleratorManager::Get()->RegisterAccelerators(
- accelerator_data, arraysize(accelerator_data), this);
-}
-
-int PowerButtonController::SetPowerButtonTimeoutMsForTest(int timeout) {
- int old_timeout = power_button_timeout_ms_;
- power_button_timeout_ms_ = timeout;
- return old_timeout;
-}
-
-void PowerButtonController::BrightnessChanged(int level, bool user_initiated) {
- if (brightness_is_zero_)
- zero_brightness_end_time_ = base::TimeTicks::Now();
- brightness_is_zero_ = (level == 0);
-}
-
-void PowerButtonController::PowerButtonEventReceived(
- bool down,
- const base::TimeTicks& timestamp) {
- // Ignore power button pressed while the screen is off
- // (http://crbug.com/128451).
- // TODO(oshima): This needs to be revisited for athena.
- base::TimeDelta time_since_zero_brightness =
- brightness_is_zero_
- ? base::TimeDelta()
- : (base::TimeTicks::Now() - zero_brightness_end_time_);
- const int kShortTimeMs = 10;
- if (time_since_zero_brightness.InMilliseconds() <= kShortTimeMs)
- return;
-
- if (down) {
- FOR_EACH_OBSERVER(PowerButtonObserver,
- observers_,
- OnPowerButtonStateChanged(PowerButtonObserver::PRESSED));
- timer_.Start(FROM_HERE,
- base::TimeDelta::FromMilliseconds(kLongPressTimeoutMs),
- this,
- &PowerButtonController::NotifyLongPress);
- } else {
- FOR_EACH_OBSERVER(PowerButtonObserver,
- observers_,
- OnPowerButtonStateChanged(PowerButtonObserver::RELEASED));
- timer_.Stop();
- }
-}
-
-bool PowerButtonController::IsCommandEnabled(int command_id) const {
- return true;
-}
-
-bool PowerButtonController::OnAcceleratorFired(
- int command_id,
- const ui::Accelerator& accelerator) {
- switch (command_id) {
- case CMD_DEBUG_POWER_BUTTON_PRESSED:
- PowerButtonEventReceived(true, base::TimeTicks());
- break;
- case CMD_DEBUG_POWER_BUTTON_RELEASED:
- PowerButtonEventReceived(false, base::TimeTicks());
- break;
- }
- return true;
-}
-
-void PowerButtonController::NotifyLongPress() {
- FOR_EACH_OBSERVER(
- PowerButtonObserver,
- observers_,
- OnPowerButtonStateChanged(PowerButtonObserver::LONG_PRESSED));
-}
-
-} // namespace
diff --git a/athena/input/power_button_controller.h b/athena/input/power_button_controller.h
deleted file mode 100644
index 8a69358..0000000
--- a/athena/input/power_button_controller.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// 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_POWER_BUTTON_CONTROLLER_H_
-#define ATHENA_INPUT_POWER_BUTTON_CONTROLLER_H_
-
-#include "athena/input/public/accelerator_manager.h"
-#include "athena/input/public/input_manager.h"
-#include "base/observer_list.h"
-#include "base/timer/timer.h"
-#include "chromeos/dbus/power_manager_client.h"
-
-namespace athena {
-
-class PowerButtonController : public chromeos::PowerManagerClient::Observer,
- public AcceleratorHandler {
- public:
- PowerButtonController();
- ~PowerButtonController() override;
-
- void AddPowerButtonObserver(PowerButtonObserver* observer);
- void RemovePowerButtonObserver(PowerButtonObserver* observer);
-
- void InstallAccelerators();
-
- // A timer callabck to notify the long press event.
- int SetPowerButtonTimeoutMsForTest(int timeout);
-
- private:
- // chromeos::PowerManagerClient::Observer:
- virtual void BrightnessChanged(int level, bool user_initiated) override;
- virtual void PowerButtonEventReceived(
- bool down,
- const base::TimeTicks& timestamp) override;
-
- // AcceleratorHandler:
- virtual bool IsCommandEnabled(int command_id) const override;
- virtual bool OnAcceleratorFired(int command_id,
- const ui::Accelerator& accelerator) override;
-
- void NotifyLongPress();
-
- int power_button_timeout_ms_;
- ObserverList<PowerButtonObserver> observers_;
- // The last time at which the screen brightness was 0%.
- base::TimeTicks zero_brightness_end_time_;
- bool brightness_is_zero_;
- base::OneShotTimer<PowerButtonController> timer_;
-
- DISALLOW_COPY_AND_ASSIGN(PowerButtonController);
-};
-
-} // namespace athena
-
-#endif // ATHENA_INPUT_POWER_BUTTON_CONTROLLER_H_
diff --git a/athena/input/public/DEPS b/athena/input/public/DEPS
deleted file mode 100644
index 941cfac..0000000
--- a/athena/input/public/DEPS
+++ /dev/null
@@ -1,4 +0,0 @@
-include_rules = [
- "-athena/input",
- "+athena/athena_export.h",
-]
diff --git a/athena/input/public/accelerator_manager.h b/athena/input/public/accelerator_manager.h
deleted file mode 100644
index adc44bf..0000000
--- a/athena/input/public/accelerator_manager.h
+++ /dev/null
@@ -1,96 +0,0 @@
-// 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_ACCELERATOR_MANAGER_H_
-#define ATHENA_INPUT_PUBLIC_ACCELERATOR_MANAGER_H_
-
-#include "athena/athena_export.h"
-#include "base/memory/scoped_ptr.h"
-#include "ui/events/keycodes/keyboard_codes.h"
-
-namespace ui {
-class Accelerator;
-}
-
-namespace views {
-class FocusManager;
-}
-
-namespace athena {
-
-enum TriggerEvent {
- TRIGGER_ON_PRESS,
- TRIGGER_ON_RELEASE,
-};
-
-// Accelerator flags.
-enum AcceleratorFlags {
- AF_NONE = 0,
- // Used for accelerators that should not be fired on auto repeated
- // key event, such as toggling fullscrren.
- AF_NON_AUTO_REPEATABLE = 1 << 0,
- // Most key events are sent to applications first as they may
- // want to consume them. Reserverd accelerators are reserved for OS
- // and cannot be consumed by apps. (such as window cycling)
- AF_RESERVED = 1 << 1,
- // Used for accelerators that are useful only in debug mode.
- AF_DEBUG = 1 << 2,
-};
-
-struct AcceleratorData {
- // true if the accelerator should be triggered upon ui::ET_KEY_PRESSED
- TriggerEvent trigger_event;
- ui::KeyboardCode keycode; // KeyEvent event flags.
- int keyevent_flags; // Combination of ui::KeyEventFlags
- int command_id; // ID to distinguish
- int accelerator_flags; // Combination of AcceleratorFlags;
-};
-
-// An interface that implements behavior for the set of
-// accelerators.
-class ATHENA_EXPORT AcceleratorHandler {
- public:
- virtual ~AcceleratorHandler() {}
-
- virtual bool IsCommandEnabled(int command_id) const = 0;
- virtual bool OnAcceleratorFired(int command_id,
- const ui::Accelerator& accelerator) = 0;
-};
-
-class ATHENA_EXPORT AcceleratorManager {
- public:
- // Returns an AcceleratorManager for global accelerators.
- static AcceleratorManager* Get();
-
- // Creates an AcceleratorManager for application windows that
- // define their own accelerators.
- static scoped_ptr<AcceleratorManager> CreateForFocusManager(
- views::FocusManager* focus_manager);
-
- virtual ~AcceleratorManager() {}
-
- // Tells if the accelerator is registered with the given flag. If
- // flags is AF_NONE, it simply tells if the accelerator is
- // registered with any flags.
- virtual bool IsRegistered(const ui::Accelerator& accelerator,
- int flags) const = 0;
-
- // Register accelerators and its handler that will be invoked when
- // one of accelerator is fired.
- virtual void RegisterAccelerators(const AcceleratorData accelerators[],
- size_t num_accelerators,
- AcceleratorHandler* handler) = 0;
-
- virtual void RegisterAccelerator(const AcceleratorData& accelerator_data,
- AcceleratorHandler* handler) = 0;
- virtual void UnregisterAccelerator(const AcceleratorData& accelerator_data,
- AcceleratorHandler* handler) = 0;
-
- // Enables/Disables accelerators that has a AF_DEBUG flag.
- virtual void SetDebugAcceleratorsEnabled(bool enabled) = 0;
-};
-
-} // namespace athena
-
-#endif // ATHENA_INPUT_PUBLIC_ACCELERATOR_MANAGER_H_
diff --git a/athena/input/public/input_manager.h b/athena/input/public/input_manager.h
deleted file mode 100644
index cd71681..0000000
--- a/athena/input/public/input_manager.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// 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 PowerButtonObserver {
- public:
- enum State {
- PRESSED,
- LONG_PRESSED,
- RELEASED,
- };
- virtual ~PowerButtonObserver() {}
- virtual void OnPowerButtonStateChanged(State state) = 0;
-};
-
-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;
-
- // Add/remove power button observer.
- virtual void AddPowerButtonObserver(PowerButtonObserver* observer) = 0;
- virtual void RemovePowerButtonObserver(PowerButtonObserver* observer) = 0;
-
- virtual ui::EventTarget* GetTopmostEventTarget() = 0;
- virtual AcceleratorManager* GetAcceleratorManager() = 0;
-
- virtual ~InputManager() {}
-};
-
-} // namespace athena
-
-#endif // ATHENA_INPUT_PUBLIC_INPUT_MANAGER_H_