diff options
Diffstat (limited to 'chromium/ash/accelerators/accelerator_controller.h')
-rw-r--r-- | chromium/ash/accelerators/accelerator_controller.h | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/chromium/ash/accelerators/accelerator_controller.h b/chromium/ash/accelerators/accelerator_controller.h deleted file mode 100644 index 5689a419e5f..00000000000 --- a/chromium/ash/accelerators/accelerator_controller.h +++ /dev/null @@ -1,180 +0,0 @@ -// 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_ACCELERATORS_ACCELERATOR_CONTROLLER_H_ -#define ASH_ACCELERATORS_ACCELERATOR_CONTROLLER_H_ - -#include <map> -#include <set> - -#include "ash/accelerators/exit_warning_handler.h" -#include "ash/ash_export.h" -#include "base/basictypes.h" -#include "base/compiler_specific.h" -#include "base/gtest_prod_util.h" -#include "base/memory/scoped_ptr.h" -#include "ui/base/accelerators/accelerator.h" - -namespace ui { -class AcceleratorManager; -} - -namespace ash { - -struct AcceleratorData; -class BrightnessControlDelegate; -class ExitWarningHandler; -class ImeControlDelegate; -class KeyboardBrightnessControlDelegate; -class ScreenshotDelegate; -class VolumeControlDelegate; - -// Stores information about accelerator context, eg. previous accelerator -// or if the current accelerator is repeated or not. -class ASH_EXPORT AcceleratorControllerContext { - public: - AcceleratorControllerContext(); - ~AcceleratorControllerContext() {} - - // Updates context - determines if the accelerator is repeated, as well as - // event type of the previous accelerator. - void UpdateContext(const ui::Accelerator& accelerator); - - const ui::Accelerator& previous_accelerator() const { - return previous_accelerator_; - } - bool repeated() const { - return current_accelerator_ == previous_accelerator_ && - current_accelerator_.type() != ui::ET_UNKNOWN; - } - - private: - ui::Accelerator current_accelerator_; - // Used for NEXT_IME and DISABLE_CAPS_LOCK accelerator actions. - ui::Accelerator previous_accelerator_; - - DISALLOW_COPY_AND_ASSIGN(AcceleratorControllerContext); -}; - -// AcceleratorController provides functions for registering or unregistering -// global keyboard accelerators, which are handled earlier than any windows. It -// also implements several handlers as an accelerator target. -class ASH_EXPORT AcceleratorController : public ui::AcceleratorTarget { - public: - AcceleratorController(); - virtual ~AcceleratorController(); - - // Registers a global keyboard accelerator for the specified target. If - // multiple targets are registered for an accelerator, a target registered - // later has higher priority. - void Register(const ui::Accelerator& accelerator, - ui::AcceleratorTarget* target); - - // Unregisters the specified keyboard accelerator for the specified target. - void Unregister(const ui::Accelerator& accelerator, - ui::AcceleratorTarget* target); - - // Unregisters all keyboard accelerators for the specified target. - void UnregisterAll(ui::AcceleratorTarget* target); - - // Activates the target associated with the specified accelerator. - // First, AcceleratorPressed handler of the most recently registered target - // is called, and if that handler processes the event (i.e. returns true), - // this method immediately returns. If not, we do the same thing on the next - // target, and so on. - // Returns true if an accelerator was activated. - bool Process(const ui::Accelerator& accelerator); - - // Returns true if the |accelerator| is registered. - bool IsRegistered(const ui::Accelerator& accelerator) const; - - // Returns true if the |accelerator| is one of the |reserved_actions_|. - bool IsReservedAccelerator(const ui::Accelerator& accelerator) const; - - // Performs the specified action. The |accelerator| may provide additional - // data the action needs. Returns whether an action was performed - // successfully. - bool PerformAction(int action, - const ui::Accelerator& accelerator); - - // Overridden from ui::AcceleratorTarget: - virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; - virtual bool CanHandleAccelerators() const OVERRIDE; - - void SetBrightnessControlDelegate( - scoped_ptr<BrightnessControlDelegate> brightness_control_delegate); - void SetImeControlDelegate( - scoped_ptr<ImeControlDelegate> ime_control_delegate); - void SetScreenshotDelegate( - scoped_ptr<ScreenshotDelegate> screenshot_delegate); - BrightnessControlDelegate* brightness_control_delegate() const { - return brightness_control_delegate_.get(); - } - - // Provides access to an object holding contextual information. - AcceleratorControllerContext* context() { - return &context_; - } - - // Provides access to the ExitWarningHandler for testing. - ExitWarningHandler* GetExitWarningHandlerForTest() { - return &exit_warning_handler_; - } - - private: - FRIEND_TEST_ALL_PREFIXES(AcceleratorControllerTest, GlobalAccelerators); - - // Initializes the accelerators this class handles as a target. - void Init(); - - // Registers the specified accelerators. - void RegisterAccelerators(const AcceleratorData accelerators[], - size_t accelerators_length); - - void SetKeyboardBrightnessControlDelegate( - scoped_ptr<KeyboardBrightnessControlDelegate> - keyboard_brightness_control_delegate); - - scoped_ptr<ui::AcceleratorManager> accelerator_manager_; - - // TODO(derat): BrightnessControlDelegate is also used by the system tray; - // move it outside of this class. - scoped_ptr<BrightnessControlDelegate> brightness_control_delegate_; - scoped_ptr<ImeControlDelegate> ime_control_delegate_; - scoped_ptr<KeyboardBrightnessControlDelegate> - keyboard_brightness_control_delegate_; - scoped_ptr<ScreenshotDelegate> screenshot_delegate_; - - // Contextual information, eg. if the current accelerator is repeated. - AcceleratorControllerContext context_; - - // Handles the exit accelerator which requires a double press to exit and - // shows a popup with an explanation. - ExitWarningHandler exit_warning_handler_; - - // A map from accelerators to the AcceleratorAction values, which are used in - // the implementation. - std::map<ui::Accelerator, int> accelerators_; - - // Actions allowed when the user is not signed in. - std::set<int> actions_allowed_at_login_screen_; - // Actions allowed when the screen is locked. - std::set<int> actions_allowed_at_lock_screen_; - // Actions allowed when a modal window is up. - std::set<int> actions_allowed_at_modal_window_; - // Reserved actions. See accelerator_table.h for details. - std::set<int> reserved_actions_; - // Actions which will not be repeated while holding the accelerator key. - std::set<int> nonrepeatable_actions_; - // Actions allowed in app mode. - std::set<int> actions_allowed_in_app_mode_; - // Actions disallowed if there are no windows. - std::set<int> actions_needing_window_; - - DISALLOW_COPY_AND_ASSIGN(AcceleratorController); -}; - -} // namespace ash - -#endif // ASH_ACCELERATORS_ACCELERATOR_CONTROLLER_H_ |