summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-11 00:14:31 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-11 00:14:31 +0000
commitdbebd42a9160a35acae341101e028fddefac93d4 (patch)
tree9ab6ce0ae3a0d7ca5654335d2b3756be880f25c1
parented740385be22965f118c2dcbe442dbe83a4ef67a (diff)
downloadchromium_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.cc18
-rw-r--r--ash/accelerators/accelerator_controller.h6
-rw-r--r--ash/accelerators/accelerator_controller_unittest.cc81
-rw-r--r--ash/accelerators/accelerator_table.cc4
-rw-r--r--ash/accelerators/accelerator_table.h2
-rw-r--r--ash/ash.gyp1
-rw-r--r--ash/system/keyboard_brightness/keyboard_brightness_control_delegate.h30
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_