Index: athena/home/home_card_impl.cc |
diff --git a/athena/home/home_card_impl.cc b/athena/home/home_card_impl.cc |
index 13723afb1794e51d0868bd5d677382f29f0a308e..949d5512d4e158be816cb91bb5bd3cff28e85757 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/app_list_view_delegate.h" |
+#include "athena/input/public/accelerator_manager.h" |
+#include "athena/input/public/input_manager.h" |
#include "athena/screen/public/screen_manager.h" |
#include "ui/app_list/pagination_model.h" |
#include "ui/app_list/views/app_list_view.h" |
@@ -68,7 +70,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(); |
@@ -76,6 +78,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); |
@@ -94,6 +110,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() { |
view->ShowWhenReady(); |
} |
+void HomeCardImpl::InstallAccelerators() { |
+ const AcceleratorData accelerator_data[] = { |
+ {TRIGGER_ON_PRESS, ui::VKEY_L, ui::EF_CONTROL_DOWN, |
+ COMMAND_SHOW_HOME_CARD, AF_NONE}, |
+ }; |
+ InputManager::Get()->GetAcceleratorManager()->RegisterAccelerators( |
+ accelerator_data, arraysize(accelerator_data), this); |
+} |
+ |
} // namespace |
// static |