Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3160)

Unified Diff: ash/common/accelerators/accelerator_controller.h

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/accelerators/accelerator_commands.cc ('k') | ash/common/accelerators/accelerator_controller.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « ash/common/accelerators/accelerator_commands.cc ('k') | ash/common/accelerators/accelerator_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698