Chromium Code Reviews| Index: athena/home/home_card_impl.cc |
| diff --git a/athena/home/home_card_impl.cc b/athena/home/home_card_impl.cc |
| index 2f1dd8ccd463f36b72df4101dfb163b3a0d1fca6..b890a09738e1e85fc76623f2f49e00b3037f7085 100644 |
| --- a/athena/home/home_card_impl.cc |
| +++ b/athena/home/home_card_impl.cc |
| @@ -5,6 +5,8 @@ |
| #include "athena/home/public/home_card.h" |
| #include "athena/home/home_card_delegate_view.h" |
| +#include "athena/input/public/accelerator_manager.h" |
| +#include "athena/input/public/input_manager.h" |
| #include "athena/screen/public/screen_manager.h" |
| #include "ui/aura/layout_manager.h" |
| #include "ui/aura/window.h" |
| @@ -62,7 +64,7 @@ class HomeCardLayoutManager : public aura::LayoutManager { |
| DISALLOW_COPY_AND_ASSIGN(HomeCardLayoutManager); |
| }; |
| -class HomeCardImpl : public HomeCard { |
| +class HomeCardImpl : public HomeCard, public AcceleratorHandler { |
| public: |
| HomeCardImpl(); |
| virtual ~HomeCardImpl(); |
| @@ -70,6 +72,20 @@ class HomeCardImpl : public HomeCard { |
| void Init(); |
| private: |
| + enum Command { |
| + COMMAND_SHOW_HOME_CARD, |
| + }; |
| + void InstallAccelerators(); |
| + |
| + // AcceleratorHandler: |
| + virtual bool IsCommandEnabled(int command_id) const OVERRIDE { return true; } |
| + virtual bool OnAcceleratorFired(int command_id, |
| + const ui::Accelerator& accelerator) OVERRIDE { |
| + DCHECK_EQ(COMMAND_SHOW_HOME_CARD, command_id); |
| + home_card_widget_->Show(); |
| + return true; |
| + } |
| + |
| views::Widget* home_card_widget_; |
| DISALLOW_COPY_AND_ASSIGN(HomeCardImpl); |
| @@ -87,6 +103,8 @@ HomeCardImpl::~HomeCardImpl() { |
| } |
| void HomeCardImpl::Init() { |
| + InstallAccelerators(); |
| + |
| aura::Window* container = |
| ScreenManager::Get()->CreateContainer("HomeCardContainer"); |
| container->SetLayoutManager(new HomeCardLayoutManager(container)); |
| @@ -111,6 +129,15 @@ void HomeCardImpl::Init() { |
| home_card_widget_->Show(); |
| } |
| +void HomeCardImpl::InstallAccelerators() { |
| + const AcceleratorData accelerator_data[] = { |
| + {TRIGGER_ON_PRESS, ui::VKEY_L, ui::EF_CONTROL_DOWN, COMMAND_SHOW_HOME_CARD, |
| + AF_NONE}, |
|
Jun Mukai
2014/06/04 04:02:34
I am not sure if splitting the table into each of
oshima
2014/06/04 04:24:26
That's actually not true. ChromeOS+ash already has
|
| + }; |
| + InputManager::Get()->GetAcceleratorManager()->RegisterAccelerators( |
| + accelerator_data, arraysize(accelerator_data), this); |
| +} |
| + |
| } // namespace |
| // static |