diff options
author | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-11 00:14:31 +0000 |
---|---|---|
committer | yusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-11 00:14:31 +0000 |
commit | dbebd42a9160a35acae341101e028fddefac93d4 (patch) | |
tree | 9ab6ce0ae3a0d7ca5654335d2b3756be880f25c1 | |
parent | ed740385be22965f118c2dcbe442dbe83a4ef67a (diff) | |
download | chromium_src-dbebd42a9160a35acae341101e028fddefac93d4.zip chromium_src-dbebd42a9160a35acae341101e028fddefac93d4.tar.gz chromium_src-dbebd42a9160a35acae341101e028fddefac93d4.tar.bz2 |
Add shortcuts for keyboard brightness.
- Add a delegate interface for controlling keyboard brightness.
- Call the interface on Alt+F6 and Alt+F7.
BUG=135482
TEST=added some tests to aura_shell_unittests
Review URL: https://chromiumcodereview.appspot.com/10694118
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146004 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ash/accelerators/accelerator_controller.cc | 18 | ||||
-rw-r--r-- | ash/accelerators/accelerator_controller.h | 6 | ||||
-rw-r--r-- | ash/accelerators/accelerator_controller_unittest.cc | 81 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.cc | 4 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.h | 2 | ||||
-rw-r--r-- | ash/ash.gyp | 1 | ||||
-rw-r--r-- | ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h | 30 |
7 files changed, 142 insertions, 0 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc index 68f2b2f..05a63a6 100644 --- a/ash/accelerators/accelerator_controller.cc +++ b/ash/accelerators/accelerator_controller.cc @@ -25,6 +25,7 @@ #include "ash/shell_delegate.h" #include "ash/shell_window_ids.h" #include "ash/system/brightness/brightness_control_delegate.h" +#include "ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h" #include "ash/system/tray/system_tray.h" #include "ash/volume_control_delegate.h" #include "ash/wm/property_util.h" @@ -445,6 +446,16 @@ bool AcceleratorController::PerformAction(int action, if (brightness_control_delegate_.get()) return brightness_control_delegate_->HandleBrightnessUp(accelerator); break; + case KEYBOARD_BRIGHTNESS_DOWN: + if (keyboard_brightness_control_delegate_.get()) + return keyboard_brightness_control_delegate_-> + HandleKeyboardBrightnessDown(accelerator); + break; + case KEYBOARD_BRIGHTNESS_UP: + if (keyboard_brightness_control_delegate_.get()) + return keyboard_brightness_control_delegate_-> + HandleKeyboardBrightnessUp(accelerator); + break; case VOLUME_MUTE: if (volume_control_delegate_.get()) return volume_control_delegate_->HandleVolumeMute(accelerator); @@ -629,6 +640,13 @@ void AcceleratorController::SetImeControlDelegate( ime_control_delegate_.swap(ime_control_delegate); } +void AcceleratorController::SetKeyboardBrightnessControlDelegate( + scoped_ptr<KeyboardBrightnessControlDelegate> + keyboard_brightness_control_delegate) { + keyboard_brightness_control_delegate_.swap( + keyboard_brightness_control_delegate); +} + void AcceleratorController::SetScreenshotDelegate( scoped_ptr<ScreenshotDelegate> screenshot_delegate) { screenshot_delegate_.swap(screenshot_delegate); diff --git a/ash/accelerators/accelerator_controller.h b/ash/accelerators/accelerator_controller.h index c85d549..4095392 100644 --- a/ash/accelerators/accelerator_controller.h +++ b/ash/accelerators/accelerator_controller.h @@ -24,6 +24,7 @@ namespace ash { class BrightnessControlDelegate; class CapsLockDelegate; class ImeControlDelegate; +class KeyboardBrightnessControlDelegate; class ScreenshotDelegate; class VolumeControlDelegate; @@ -77,6 +78,9 @@ class ASH_EXPORT AcceleratorController : public ui::AcceleratorTarget { void SetCapsLockDelegate(scoped_ptr<CapsLockDelegate> caps_lock_delegate); void SetImeControlDelegate( scoped_ptr<ImeControlDelegate> ime_control_delegate); + void SetKeyboardBrightnessControlDelegate( + scoped_ptr<KeyboardBrightnessControlDelegate> + keyboard_brightness_control_delegate); void SetScreenshotDelegate( scoped_ptr<ScreenshotDelegate> screenshot_delegate); void SetVolumeControlDelegate( @@ -105,6 +109,8 @@ class ASH_EXPORT AcceleratorController : public ui::AcceleratorTarget { scoped_ptr<BrightnessControlDelegate> brightness_control_delegate_; scoped_ptr<CapsLockDelegate> caps_lock_delegate_; scoped_ptr<ImeControlDelegate> ime_control_delegate_; + scoped_ptr<KeyboardBrightnessControlDelegate> + keyboard_brightness_control_delegate_; scoped_ptr<ScreenshotDelegate> screenshot_delegate_; scoped_ptr<VolumeControlDelegate> volume_control_delegate_; diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index 3fcd8ef..45d81ad 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc @@ -10,6 +10,7 @@ #include "ash/shell.h" #include "ash/shell_window_ids.h" #include "ash/system/brightness/brightness_control_delegate.h" +#include "ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h" #include "ash/test/ash_test_base.h" #include "ash/test/test_shell_delegate.h" #include "ash/volume_control_delegate.h" @@ -266,6 +267,51 @@ class DummyImeControlDelegate : public ImeControlDelegate { DISALLOW_COPY_AND_ASSIGN(DummyImeControlDelegate); }; +class DummyKeyboardBrightnessControlDelegate + : public KeyboardBrightnessControlDelegate { + public: + explicit DummyKeyboardBrightnessControlDelegate(bool consume) + : consume_(consume), + handle_keyboard_brightness_down_count_(0), + handle_keyboard_brightness_up_count_(0) { + } + virtual ~DummyKeyboardBrightnessControlDelegate() {} + + virtual bool HandleKeyboardBrightnessDown( + const ui::Accelerator& accelerator) OVERRIDE { + ++handle_keyboard_brightness_down_count_; + last_accelerator_ = accelerator; + return consume_; + } + + virtual bool HandleKeyboardBrightnessUp( + const ui::Accelerator& accelerator) OVERRIDE { + ++handle_keyboard_brightness_up_count_; + last_accelerator_ = accelerator; + return consume_; + } + + int handle_keyboard_brightness_down_count() const { + return handle_keyboard_brightness_down_count_; + } + + int handle_keyboard_brightness_up_count() const { + return handle_keyboard_brightness_up_count_; + } + + const ui::Accelerator& last_accelerator() const { + return last_accelerator_; + } + + private: + const bool consume_; + int handle_keyboard_brightness_down_count_; + int handle_keyboard_brightness_up_count_; + ui::Accelerator last_accelerator_; + + DISALLOW_COPY_AND_ASSIGN(DummyKeyboardBrightnessControlDelegate); +}; + bool TestTarget::AcceleratorPressed(const ui::Accelerator& accelerator) { ++accelerator_pressed_count_; return true; @@ -712,6 +758,41 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) { EXPECT_EQ(brightness_up, delegate->last_accelerator()); } #endif + + // Keyboard brightness + const ui::Accelerator alt_f6(ui::VKEY_F6, ui::EF_ALT_DOWN); + const ui::Accelerator alt_f7(ui::VKEY_F7, ui::EF_ALT_DOWN); + { + EXPECT_FALSE(GetController()->Process(alt_f6)); + EXPECT_FALSE(GetController()->Process(alt_f7)); + DummyKeyboardBrightnessControlDelegate* delegate = + new DummyKeyboardBrightnessControlDelegate(false); + GetController()->SetKeyboardBrightnessControlDelegate( + scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); + EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); + EXPECT_FALSE(GetController()->Process(alt_f6)); + EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); + EXPECT_EQ(alt_f6, delegate->last_accelerator()); + EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); + EXPECT_FALSE(GetController()->Process(alt_f7)); + EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); + EXPECT_EQ(alt_f7, delegate->last_accelerator()); + } + { + DummyKeyboardBrightnessControlDelegate* delegate = + new DummyKeyboardBrightnessControlDelegate(true); + GetController()->SetKeyboardBrightnessControlDelegate( + scoped_ptr<KeyboardBrightnessControlDelegate>(delegate).Pass()); + EXPECT_EQ(0, delegate->handle_keyboard_brightness_down_count()); + EXPECT_TRUE(GetController()->Process(alt_f6)); + EXPECT_EQ(1, delegate->handle_keyboard_brightness_down_count()); + EXPECT_EQ(alt_f6, delegate->last_accelerator()); + EXPECT_EQ(0, delegate->handle_keyboard_brightness_up_count()); + EXPECT_TRUE(GetController()->Process(alt_f7)); + EXPECT_EQ(1, delegate->handle_keyboard_brightness_up_count()); + EXPECT_EQ(alt_f7, delegate->last_accelerator()); + } + #if !defined(NDEBUG) // RotateScreen EXPECT_TRUE(GetController()->Process( diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc index 83a19a5b8..e9489b3 100644 --- a/ash/accelerators/accelerator_table.cc +++ b/ash/accelerators/accelerator_table.cc @@ -79,7 +79,9 @@ const AcceleratorData kAcceleratorData[] = { { true, ui::VKEY_BROWSER_SEARCH, ui::EF_NONE, TOGGLE_APP_LIST }, { true, ui::VKEY_LWIN, ui::EF_SHIFT_DOWN, TOGGLE_CAPS_LOCK }, { true, ui::VKEY_F6, ui::EF_NONE, BRIGHTNESS_DOWN }, + { true, ui::VKEY_F6, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_DOWN }, { true, ui::VKEY_F7, ui::EF_NONE, BRIGHTNESS_UP }, + { true, ui::VKEY_F7, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_UP }, { true, ui::VKEY_F8, ui::EF_NONE, VOLUME_MUTE }, { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, { true, ui::VKEY_F9, ui::EF_NONE, VOLUME_DOWN }, @@ -157,6 +159,8 @@ const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[] = { #if defined(OS_CHROMEOS) CYCLE_DISPLAY_MODE, #endif // defined(OS_CHROMEOS) + KEYBOARD_BRIGHTNESS_DOWN, + KEYBOARD_BRIGHTNESS_UP, NEXT_IME, PREVIOUS_IME, SWITCH_IME, // Switch to another IME depending on the accelerator. diff --git a/ash/accelerators/accelerator_table.h b/ash/accelerators/accelerator_table.h index 788de46..051c40a 100644 --- a/ash/accelerators/accelerator_table.h +++ b/ash/accelerators/accelerator_table.h @@ -25,6 +25,8 @@ enum AcceleratorAction { FOCUS_NEXT_PANE, FOCUS_PREVIOUS_PANE, FOCUS_SYSTEM_TRAY, + KEYBOARD_BRIGHTNESS_DOWN, + KEYBOARD_BRIGHTNESS_UP, MAGNIFY_SCREEN_ZOOM_IN, MAGNIFY_SCREEN_ZOOM_OUT, NEW_INCOGNITO_WINDOW, diff --git a/ash/ash.gyp b/ash/ash.gyp index 61fe799..fa9e452 100644 --- a/ash/ash.gyp +++ b/ash/ash.gyp @@ -144,6 +144,7 @@ 'system/ime/ime_observer.h', 'system/ime/tray_ime.cc', 'system/ime/tray_ime.h', + 'system/keyboard_brightness/keyboard_brightness_control_delegate.h', 'system/locale/tray_locale.cc', 'system/locale/tray_locale.h', 'system/network/network_observer.h', diff --git a/ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h b/ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h new file mode 100644 index 0000000..b28e173 --- /dev/null +++ b/ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h @@ -0,0 +1,30 @@ +// Copyright (c) 2012 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 ASH_SYSTEM_KEYBOARD_BRIGHTNESS_KEYBOARD_BRIGHTNESS_CONTROL_DELEGATE_H_ +#define ASH_SYSTEM_KEYBOARD_BRIGHTNESS_KEYBOARD_BRIGHTNESS_CONTROL_DELEGATE_H_ +#pragma once + +namespace ui { +class Accelerator; +} // namespace ui + +namespace ash { + +// Delegate for controlling the keyboard brightness. +class KeyboardBrightnessControlDelegate { + public: + virtual ~KeyboardBrightnessControlDelegate() {} + + // Handles an accelerator-driven request to decrease or increase the keyboard + // brightness. Returns true if the brightness is changed. + virtual bool HandleKeyboardBrightnessDown( + const ui::Accelerator& accelerator) = 0; + virtual bool HandleKeyboardBrightnessUp( + const ui::Accelerator& accelerator) = 0; +}; + +} // namespace ash + +#endif // ASH_SYSTEM_KEYBOARD_BRIGHTNESS_KEYBOARD_BRIGHTNESS_CONTROL_DELEGATE_H_ |