OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "athena/screen/screen_accelerator_handler.h" | |
6 | |
7 #include "athena/input/public/accelerator_manager.h" | |
8 #include "athena/screen/public/screen_manager.h" | |
9 #include "ui/events/event_constants.h" | |
10 #include "ui/gfx/display.h" | |
11 #include "ui/gfx/screen.h" | |
12 | |
13 namespace athena { | |
14 namespace { | |
15 | |
16 enum Command { | |
17 CMD_ROTATE_SCREEN, | |
18 }; | |
19 | |
20 const AcceleratorData accelerator_data[] = { | |
21 {TRIGGER_ON_PRESS, ui::VKEY_F3, | |
22 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | |
23 CMD_ROTATE_SCREEN, AF_NONE}, | |
24 }; | |
25 | |
26 void HandleRotateScreen() { | |
27 ScreenManager* screen_manager = ScreenManager::Get(); | |
28 gfx::Display::Rotation current_rotation = | |
29 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation(); | |
30 if (current_rotation == gfx::Display::ROTATE_0) | |
31 screen_manager->SetRotation(gfx::Display::ROTATE_90); | |
32 else if (current_rotation == gfx::Display::ROTATE_90) | |
33 screen_manager->SetRotation(gfx::Display::ROTATE_180); | |
34 else if (current_rotation == gfx::Display::ROTATE_180) | |
35 screen_manager->SetRotation(gfx::Display::ROTATE_270); | |
36 else if (current_rotation == gfx::Display::ROTATE_270) | |
37 screen_manager->SetRotation(gfx::Display::ROTATE_0); | |
38 } | |
39 | |
40 } // namespace | |
41 | |
42 ScreenAcceleratorHandler::ScreenAcceleratorHandler() { | |
43 AcceleratorManager::Get()->RegisterAccelerators( | |
44 accelerator_data, arraysize(accelerator_data), this); | |
45 } | |
46 | |
47 ScreenAcceleratorHandler::~ScreenAcceleratorHandler() { | |
48 } | |
49 | |
50 bool ScreenAcceleratorHandler::IsCommandEnabled(int command_id) const { | |
51 return true; | |
52 } | |
53 | |
54 bool ScreenAcceleratorHandler::OnAcceleratorFired( | |
55 int command_id, | |
56 const ui::Accelerator& accelerator) { | |
57 switch (command_id) { | |
58 case CMD_ROTATE_SCREEN: | |
59 HandleRotateScreen(); | |
60 return true; | |
61 } | |
62 return false; | |
63 } | |
64 | |
65 } // namesapce athena | |
OLD | NEW |