OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef ASH_SHELL_H_ | 5 #ifndef ASH_SHELL_H_ |
6 #define ASH_SHELL_H_ | 6 #define ASH_SHELL_H_ |
7 | 7 |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "ash/ash_export.h" | 11 #include "ash/ash_export.h" |
12 #include "ash/system/user/login_status.h" | 12 #include "ash/system/user/login_status.h" |
| 13 #include "ash/wm/cursor_delegate.h" |
| 14 #include "ash/wm/cursor_manager.h" |
13 #include "ash/wm/shelf_types.h" | 15 #include "ash/wm/shelf_types.h" |
14 #include "base/basictypes.h" | 16 #include "base/basictypes.h" |
15 #include "base/compiler_specific.h" | 17 #include "base/compiler_specific.h" |
16 #include "base/gtest_prod_util.h" | 18 #include "base/gtest_prod_util.h" |
17 #include "base/memory/scoped_ptr.h" | 19 #include "base/memory/scoped_ptr.h" |
18 #include "base/observer_list.h" | 20 #include "base/observer_list.h" |
19 #include "ui/aura/cursor_delegate.h" | |
20 #include "ui/gfx/insets.h" | 21 #include "ui/gfx/insets.h" |
21 #include "ui/gfx/size.h" | 22 #include "ui/gfx/size.h" |
22 | 23 |
23 class CommandLine; | 24 class CommandLine; |
24 | 25 |
25 namespace aura { | 26 namespace aura { |
26 class EventFilter; | 27 class EventFilter; |
27 class FocusManager; | 28 class FocusManager; |
28 class RootWindow; | 29 class RootWindow; |
29 class Window; | 30 class Window; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 class VisibilityController; | 102 class VisibilityController; |
102 class WindowModalityController; | 103 class WindowModalityController; |
103 class WorkspaceController; | 104 class WorkspaceController; |
104 } | 105 } |
105 | 106 |
106 // Shell is a singleton object that presents the Shell API and implements the | 107 // Shell is a singleton object that presents the Shell API and implements the |
107 // RootWindow's delegate interface. | 108 // RootWindow's delegate interface. |
108 // | 109 // |
109 // Upon creation, the Shell sets itself as the RootWindow's delegate, which | 110 // Upon creation, the Shell sets itself as the RootWindow's delegate, which |
110 // takes ownership of the Shell. | 111 // takes ownership of the Shell. |
111 class ASH_EXPORT Shell : aura::CursorDelegate { | 112 class ASH_EXPORT Shell : ash::CursorDelegate { |
112 public: | 113 public: |
113 typedef std::vector<aura::RootWindow*> RootWindowList; | 114 typedef std::vector<aura::RootWindow*> RootWindowList; |
114 typedef std::vector<internal::RootWindowController*> RootWindowControllerList; | 115 typedef std::vector<internal::RootWindowController*> RootWindowControllerList; |
115 | 116 |
116 enum Direction { | 117 enum Direction { |
117 FORWARD, | 118 FORWARD, |
118 BACKWARD | 119 BACKWARD |
119 }; | 120 }; |
120 | 121 |
121 // Accesses private data from a Shell for testing. | 122 // Accesses private data from a Shell for testing. |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 } | 275 } |
275 WindowCycleController* window_cycle_controller() { | 276 WindowCycleController* window_cycle_controller() { |
276 return window_cycle_controller_.get(); | 277 return window_cycle_controller_.get(); |
277 } | 278 } |
278 internal::FocusCycler* focus_cycler() { | 279 internal::FocusCycler* focus_cycler() { |
279 return focus_cycler_.get(); | 280 return focus_cycler_.get(); |
280 } | 281 } |
281 internal::DisplayController* display_controller() { | 282 internal::DisplayController* display_controller() { |
282 return display_controller_.get(); | 283 return display_controller_.get(); |
283 } | 284 } |
| 285 CursorManager* cursor_manager() { return &cursor_manager_; } |
284 | 286 |
285 ShellDelegate* delegate() { return delegate_.get(); } | 287 ShellDelegate* delegate() { return delegate_.get(); } |
286 | 288 |
287 UserWallpaperDelegate* user_wallpaper_delegate() { | 289 UserWallpaperDelegate* user_wallpaper_delegate() { |
288 return user_wallpaper_delegate_.get(); | 290 return user_wallpaper_delegate_.get(); |
289 } | 291 } |
290 | 292 |
291 HighContrastController* high_contrast_controller() { | 293 HighContrastController* high_contrast_controller() { |
292 return high_contrast_controller_.get(); | 294 return high_contrast_controller_.get(); |
293 } | 295 } |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 | 461 |
460 // An event filter that looks for modifier keypresses and triggers a slowdown | 462 // An event filter that looks for modifier keypresses and triggers a slowdown |
461 // of layer animations for visual debugging. | 463 // of layer animations for visual debugging. |
462 scoped_ptr<internal::SlowAnimationEventFilter> slow_animation_filter_; | 464 scoped_ptr<internal::SlowAnimationEventFilter> slow_animation_filter_; |
463 | 465 |
464 #if defined(OS_CHROMEOS) | 466 #if defined(OS_CHROMEOS) |
465 // Controls video output device state. | 467 // Controls video output device state. |
466 scoped_ptr<chromeos::OutputConfigurator> output_configurator_; | 468 scoped_ptr<chromeos::OutputConfigurator> output_configurator_; |
467 #endif // defined(OS_CHROMEOS) | 469 #endif // defined(OS_CHROMEOS) |
468 | 470 |
| 471 CursorManager cursor_manager_; |
| 472 |
469 // The shelf for managing the launcher and the status widget in non-compact | 473 // The shelf for managing the launcher and the status widget in non-compact |
470 // mode. Shell does not own the shelf. Instead, it is owned by container of | 474 // mode. Shell does not own the shelf. Instead, it is owned by container of |
471 // the status area. | 475 // the status area. |
472 internal::ShelfLayoutManager* shelf_; | 476 internal::ShelfLayoutManager* shelf_; |
473 | 477 |
474 // Manages layout of panels. Owned by PanelContainer. | 478 // Manages layout of panels. Owned by PanelContainer. |
475 internal::PanelLayoutManager* panel_layout_manager_; | 479 internal::PanelLayoutManager* panel_layout_manager_; |
476 | 480 |
477 ObserverList<ShellObserver> observers_; | 481 ObserverList<ShellObserver> observers_; |
478 | 482 |
479 // Widget containing system tray. | 483 // Widget containing system tray. |
480 internal::StatusAreaWidget* status_area_widget_; | 484 internal::StatusAreaWidget* status_area_widget_; |
481 | 485 |
482 // Used by ash/shell. | 486 // Used by ash/shell. |
483 content::BrowserContext* browser_context_; | 487 content::BrowserContext* browser_context_; |
484 | 488 |
485 DISALLOW_COPY_AND_ASSIGN(Shell); | 489 DISALLOW_COPY_AND_ASSIGN(Shell); |
486 }; | 490 }; |
487 | 491 |
488 } // namespace ash | 492 } // namespace ash |
489 | 493 |
490 #endif // ASH_SHELL_H_ | 494 #endif // ASH_SHELL_H_ |
OLD | NEW |