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

Unified Diff: athena/input/accelerator_manager_impl.h

Issue 332443005: Enable accelerators on web activity window (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 | « athena/content/web_activity.cc ('k') | athena/input/accelerator_manager_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: athena/input/accelerator_manager_impl.h
diff --git a/athena/input/accelerator_manager_impl.h b/athena/input/accelerator_manager_impl.h
index 06a822f9a70d271557d9e8e9076bfd1f5e330ae4..5891b8599edcd345a51a8d9d5eba2f40daaa6d3f 100644
--- a/athena/input/accelerator_manager_impl.h
+++ b/athena/input/accelerator_manager_impl.h
@@ -17,10 +17,6 @@ namespace aura {
class Window;
}
-namespace ui {
-class AcceleratorManager;
-}
-
namespace wm {
class AcceleratorFilter;
class NestedAcceleratorController;
@@ -35,18 +31,34 @@ namespace athena {
class AcceleratorManagerImpl : public AcceleratorManager,
public ui::AcceleratorTarget {
public:
- AcceleratorManagerImpl();
+ class AcceleratorWrapper;
Jun Mukai 2014/06/12 21:30:31 then I think you should make this class decl to pr
oshima 2014/06/12 22:35:23 I unfortunately can't without exposing internal cl
Jun Mukai 2014/06/12 22:50:26 Confused. Which one exactly you need to expose, an
oshima 2014/06/12 23:11:01 Subclasses (UIAcceleratorManagerWrapper, FocusMana
+
+ // Creates an AcceleratorManager for global accelerators.
+ // This is the one returned by AcceleratorManager::Get()
+ static AcceleratorManagerImpl* CreateGlobalAcceleratorManager();
+
+ // Creates an AcceleratorManager for focus manager.
+ static scoped_ptr<AcceleratorManager> CreateForFocusManager(
+ views::FocusManager* focus_manager);
+
virtual ~AcceleratorManagerImpl();
void Init();
void OnRootWindowCreated(aura::Window* root_window);
- bool IsRegistered(const ui::Accelerator& accelerator) const;
- bool IsReserved(const ui::Accelerator& accelerator) const;
bool Process(const ui::Accelerator& accelerator);
+ // AcceleratorManager:
+ // This is made public so that implementation classes can use this.
+ virtual bool IsRegistered(const ui::Accelerator& accelerator,
+ int flags) const OVERRIDE;
+
private:
+ class InternalData;
+
+ explicit AcceleratorManagerImpl(AcceleratorWrapper* wrapper);
+
// AcceleratorManager:
virtual void RegisterAccelerators(const AcceleratorData accelerators[],
size_t num_accelerators,
@@ -57,17 +69,13 @@ class AcceleratorManagerImpl : public AcceleratorManager,
virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE;
virtual bool CanHandleAccelerators() const OVERRIDE;
- class InternalData;
-
void RegisterAccelerator(const AcceleratorData& accelerator,
AcceleratorHandler* handler);
std::map<ui::Accelerator, InternalData> accelerators_;
- scoped_ptr<ui::AcceleratorManager> accelerator_manager_;
-
+ scoped_ptr<AcceleratorWrapper> accelerator_wrapper_;
scoped_ptr<wm::AcceleratorFilter> accelerator_filter_;
scoped_ptr<wm::NestedAcceleratorController> nested_accelerator_controller_;
-
bool debug_accelerators_enabled_;
DISALLOW_COPY_AND_ASSIGN(AcceleratorManagerImpl);
« no previous file with comments | « athena/content/web_activity.cc ('k') | athena/input/accelerator_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698