| Index: ash/common/accelerators/accelerator_controller.h
|
| diff --git a/ash/common/accelerators/accelerator_controller.h b/ash/common/accelerators/accelerator_controller.h
|
| deleted file mode 100644
|
| index 0a39c635b19f4386365b07c367ab15ebef41fc85..0000000000000000000000000000000000000000
|
| --- a/ash/common/accelerators/accelerator_controller.h
|
| +++ /dev/null
|
| @@ -1,234 +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_COMMON_ACCELERATORS_ACCELERATOR_CONTROLLER_H_
|
| -#define ASH_COMMON_ACCELERATORS_ACCELERATOR_CONTROLLER_H_
|
| -
|
| -#include <stddef.h>
|
| -
|
| -#include <map>
|
| -#include <memory>
|
| -#include <set>
|
| -#include <vector>
|
| -
|
| -#include "ash/ash_export.h"
|
| -#include "ash/common/accelerators/accelerator_table.h"
|
| -#include "ash/common/accelerators/exit_warning_handler.h"
|
| -#include "ash/public/interfaces/accelerator_controller.mojom.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/macros.h"
|
| -#include "mojo/public/cpp/bindings/binding_set.h"
|
| -#include "ui/base/accelerators/accelerator.h"
|
| -#include "ui/base/accelerators/accelerator_history.h"
|
| -
|
| -namespace ui {
|
| -class AcceleratorManager;
|
| -class AcceleratorManagerDelegate;
|
| -}
|
| -
|
| -namespace ash {
|
| -
|
| -struct AcceleratorData;
|
| -class AcceleratorControllerDelegate;
|
| -class ExitWarningHandler;
|
| -class ImeControlDelegate;
|
| -
|
| -// 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,
|
| - NON_EXPORTED_BASE(public mojom::AcceleratorController) {
|
| - public:
|
| - AcceleratorController(AcceleratorControllerDelegate* delegate,
|
| - ui::AcceleratorManagerDelegate* manager_delegate);
|
| - ~AcceleratorController() override;
|
| -
|
| - // A list of possible ways in which an accelerator should be restricted before
|
| - // processing. Any target registered with this controller should respect
|
| - // restrictions by calling |GetCurrentAcceleratorRestriction| during
|
| - // processing.
|
| - enum AcceleratorProcessingRestriction {
|
| - // Process the accelerator normally.
|
| - RESTRICTION_NONE,
|
| -
|
| - // Don't process the accelerator.
|
| - RESTRICTION_PREVENT_PROCESSING,
|
| -
|
| - // Don't process the accelerator and prevent propagation to other targets.
|
| - RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION
|
| - };
|
| -
|
| - // Registers global keyboard accelerators for the specified target. If
|
| - // multiple targets are registered for any given accelerator, a target
|
| - // registered later has higher priority.
|
| - void Register(const std::vector<ui::Accelerator>& accelerators,
|
| - 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 preferred. A preferred accelerator
|
| - // is handled before being passed to an window/web contents, unless
|
| - // the window is in fullscreen state.
|
| - bool IsPreferred(const ui::Accelerator& accelerator) const;
|
| -
|
| - // Returns true if the |accelerator| is reserved. A reserved accelerator
|
| - // is always handled and will never be passed to an window/web contents.
|
| - bool IsReserved(const ui::Accelerator& accelerator) const;
|
| -
|
| - // Returns true if the |accelerator| is deprecated. Deprecated accelerators
|
| - // can be consumed by web contents if needed.
|
| - bool IsDeprecated(const ui::Accelerator& accelerator) const;
|
| -
|
| - // Performs the specified action if it is enabled. Returns whether the action
|
| - // was performed successfully.
|
| - bool PerformActionIfEnabled(AcceleratorAction action);
|
| -
|
| - // Returns the restriction for the current context.
|
| - AcceleratorProcessingRestriction GetCurrentAcceleratorRestriction();
|
| -
|
| - void SetImeControlDelegate(
|
| - std::unique_ptr<ImeControlDelegate> ime_control_delegate);
|
| -
|
| - // Provides access to the ExitWarningHandler for testing.
|
| - ExitWarningHandler* GetExitWarningHandlerForTest() {
|
| - return &exit_warning_handler_;
|
| - }
|
| -
|
| - // Returns true if the menu should close in order to perform the accelerator.
|
| - bool ShouldCloseMenuAndRepostAccelerator(
|
| - const ui::Accelerator& accelerator) const;
|
| -
|
| - ui::AcceleratorHistory* accelerator_history() {
|
| - return accelerator_history_.get();
|
| - }
|
| -
|
| - // Overridden from ui::AcceleratorTarget:
|
| - bool AcceleratorPressed(const ui::Accelerator& accelerator) override;
|
| - bool CanHandleAccelerators() const override;
|
| -
|
| - // Binds the mojom::AcceleratorController interface to this object.
|
| - void BindRequest(mojom::AcceleratorControllerRequest request);
|
| -
|
| - // mojom::AcceleratorController:
|
| - void SetVolumeController(mojom::VolumeControllerPtr controller) override;
|
| -
|
| - private:
|
| - FRIEND_TEST_ALL_PREFIXES(AcceleratorControllerTest, GlobalAccelerators);
|
| - FRIEND_TEST_ALL_PREFIXES(AcceleratorControllerTest,
|
| - DontRepeatToggleFullscreen);
|
| - FRIEND_TEST_ALL_PREFIXES(DeprecatedAcceleratorTester,
|
| - TestDeprecatedAcceleratorsBehavior);
|
| -
|
| - // Initializes the accelerators this class handles as a target.
|
| - void Init();
|
| -
|
| - // Registers the specified accelerators.
|
| - void RegisterAccelerators(const AcceleratorData accelerators[],
|
| - size_t accelerators_length);
|
| -
|
| - // Registers the deprecated accelerators and their replacing new ones.
|
| - void RegisterDeprecatedAccelerators();
|
| -
|
| - // Returns whether |action| can be performed. The |accelerator| may provide
|
| - // additional data the action needs.
|
| - bool CanPerformAction(AcceleratorAction action,
|
| - const ui::Accelerator& accelerator);
|
| -
|
| - // Performs the specified action. The |accelerator| may provide additional
|
| - // data the action needs.
|
| - void PerformAction(AcceleratorAction action,
|
| - const ui::Accelerator& accelerator);
|
| -
|
| - // Returns whether performing |action| should consume the key event.
|
| - bool ShouldActionConsumeKeyEvent(AcceleratorAction action);
|
| -
|
| - // Get the accelerator restriction for the given action. Supply an |action|
|
| - // of -1 to get restrictions that apply for the current context.
|
| - AcceleratorProcessingRestriction GetAcceleratorProcessingRestriction(
|
| - int action);
|
| -
|
| - // If |accelerator| is a deprecated accelerator, it performs the appropriate
|
| - // deprecated accelerator pre-handling.
|
| - // Returns PROCEED if the accelerator's action should be performed (i.e. if
|
| - // |accelerator| is not a deprecated accelerator, or it's an enabled
|
| - // deprecated accelerator), and STOP otherwise (if the accelerator is a
|
| - // disabled deprecated accelerator).
|
| - enum class AcceleratorProcessingStatus { PROCEED, STOP };
|
| - AcceleratorProcessingStatus MaybeDeprecatedAcceleratorPressed(
|
| - AcceleratorAction action,
|
| - const ui::Accelerator& accelerator) const;
|
| -
|
| - AcceleratorControllerDelegate* delegate_;
|
| -
|
| - std::unique_ptr<ui::AcceleratorManager> accelerator_manager_;
|
| -
|
| - // A tracker for the current and previous accelerators.
|
| - std::unique_ptr<ui::AcceleratorHistory> accelerator_history_;
|
| -
|
| - std::unique_ptr<ImeControlDelegate> ime_control_delegate_;
|
| -
|
| - // 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, AcceleratorAction> accelerators_;
|
| -
|
| - std::map<AcceleratorAction, const DeprecatedAcceleratorData*>
|
| - actions_with_deprecations_;
|
| - std::set<ui::Accelerator> deprecated_accelerators_;
|
| -
|
| - // Bindings for the mojom::AcceleratorController interface.
|
| - mojo::BindingSet<mojom::AcceleratorController> bindings_;
|
| -
|
| - // Volume controller interface in chrome browser. May be null in tests. Exists
|
| - // because chrome owns the CrasAudioHandler dbus communication.
|
| - mojom::VolumeControllerPtr volume_controller_;
|
| -
|
| - // 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_;
|
| - // Preferred actions. See accelerator_table.h for details.
|
| - std::set<int> preferred_actions_;
|
| - // Reserved actions. See accelerator_table.h for details.
|
| - std::set<int> reserved_actions_;
|
| - // Actions which will be repeated while holding the accelerator key.
|
| - std::set<int> repeatable_actions_;
|
| - // Actions allowed in app mode.
|
| - std::set<int> actions_allowed_in_app_mode_;
|
| - // Actions allowed in pinned mode.
|
| - std::set<int> actions_allowed_in_pinned_mode_;
|
| - // Actions disallowed if there are no windows.
|
| - std::set<int> actions_needing_window_;
|
| - // Actions that can be performed without closing the menu (if one is present).
|
| - std::set<int> actions_keeping_menu_open_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(AcceleratorController);
|
| -};
|
| -
|
| -} // namespace ash
|
| -
|
| -#endif // ASH_COMMON_ACCELERATORS_ACCELERATOR_CONTROLLER_H_
|
|
|