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

Side by Side Diff: ash/shell.h

Issue 9580023: Enable user change background image in settings page in Aura build. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Merge to trunk Created 8 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/desktop_background/desktop_background_view.cc ('k') | ash/shell.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #pragma once 7 #pragma once
8 8
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "ash/ash_export.h" 12 #include "ash/ash_export.h"
13 #include "base/basictypes.h" 13 #include "base/basictypes.h"
14 #include "base/compiler_specific.h" 14 #include "base/compiler_specific.h"
15 #include "base/gtest_prod_util.h" 15 #include "base/gtest_prod_util.h"
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/observer_list.h" 17 #include "base/observer_list.h"
18 #include "ui/gfx/size.h" 18 #include "ui/gfx/size.h"
19 #include "ui/gfx/insets.h" 19 #include "ui/gfx/insets.h"
20 20
21 class CommandLine; 21 class CommandLine;
22 class SkBitmap;
22 23
23 namespace aura { 24 namespace aura {
24 class EventFilter; 25 class EventFilter;
25 class RootWindow; 26 class RootWindow;
26 class Window; 27 class Window;
27 } 28 }
28 namespace gfx { 29 namespace gfx {
29 class Point; 30 class Point;
30 class Rect; 31 class Rect;
31 } 32 }
32 namespace ui { 33 namespace ui {
33 class Layer; 34 class Layer;
34 } 35 }
35 namespace views { 36 namespace views {
36 class NonClientFrameView; 37 class NonClientFrameView;
37 class Widget; 38 class Widget;
38 } 39 }
39 40
40 namespace ash { 41 namespace ash {
41 42
42 class AcceleratorController; 43 class AcceleratorController;
43 class AudioController; 44 class AudioController;
44 class BrightnessController; 45 class BrightnessController;
46 class DesktopBackgroundController;
45 class Launcher; 47 class Launcher;
46 class NestedDispatcherController; 48 class NestedDispatcherController;
47 class NetworkController; 49 class NetworkController;
48 class PowerButtonController; 50 class PowerButtonController;
49 class PowerStatusController; 51 class PowerStatusController;
50 class ScreenAsh; 52 class ScreenAsh;
51 class ShellDelegate; 53 class ShellDelegate;
52 class ShellObserver; 54 class ShellObserver;
53 class SystemTrayDelegate; 55 class SystemTrayDelegate;
54 class SystemTray; 56 class SystemTray;
(...skipping 19 matching lines...) Expand all
74 class WorkspaceController; 76 class WorkspaceController;
75 } 77 }
76 78
77 // Shell is a singleton object that presents the Shell API and implements the 79 // Shell is a singleton object that presents the Shell API and implements the
78 // RootWindow's delegate interface. 80 // RootWindow's delegate interface.
79 // 81 //
80 // Upon creation, the Shell sets itself as the RootWindow's delegate, which 82 // Upon creation, the Shell sets itself as the RootWindow's delegate, which
81 // takes ownership of the Shell. 83 // takes ownership of the Shell.
82 class ASH_EXPORT Shell { 84 class ASH_EXPORT Shell {
83 public: 85 public:
84 enum BackgroundMode {
85 BACKGROUND_IMAGE,
86 BACKGROUND_SOLID_COLOR
87 };
88
89 enum Direction { 86 enum Direction {
90 FORWARD, 87 FORWARD,
91 BACKWARD 88 BACKWARD
92 }; 89 };
93 90
94 // Accesses private data from a Shell for testing. 91 // Accesses private data from a Shell for testing.
95 class ASH_EXPORT TestApi { 92 class ASH_EXPORT TestApi {
96 public: 93 public:
97 explicit TestApi(Shell* shell); 94 explicit TestApi(Shell* shell);
98 95
(...skipping 15 matching lines...) Expand all
114 static Shell* GetInstance(); 111 static Shell* GetInstance();
115 112
116 // Returns true if the ash shell has been instantiated. 113 // Returns true if the ash shell has been instantiated.
117 static bool HasInstance(); 114 static bool HasInstance();
118 115
119 static void DeleteInstance(); 116 static void DeleteInstance();
120 117
121 // Get the singleton RootWindow used by the Shell. 118 // Get the singleton RootWindow used by the Shell.
122 static aura::RootWindow* GetRootWindow(); 119 static aura::RootWindow* GetRootWindow();
123 120
124 BackgroundMode desktop_background_mode() const { 121 internal::RootWindowLayoutManager* root_window_layout() const {
125 return desktop_background_mode_; 122 return root_window_layout_;
126 } 123 }
127 124
128 aura::Window* GetContainer(int container_id); 125 aura::Window* GetContainer(int container_id);
129 const aura::Window* GetContainer(int container_id) const; 126 const aura::Window* GetContainer(int container_id) const;
130 127
131 // Adds or removes |filter| from the RootWindowEventFilter. 128 // Adds or removes |filter| from the RootWindowEventFilter.
132 void AddRootWindowEventFilter(aura::EventFilter* filter); 129 void AddRootWindowEventFilter(aura::EventFilter* filter);
133 void RemoveRootWindowEventFilter(aura::EventFilter* filter); 130 void RemoveRootWindowEventFilter(aura::EventFilter* filter);
134 size_t GetRootWindowEventFilterCount() const; 131 size_t GetRootWindowEventFilterCount() const;
135 132
136 // Shows the background menu over |widget|. 133 // Shows the background menu over |widget|.
137 void ShowBackgroundMenu(views::Widget* widget, const gfx::Point& location); 134 void ShowBackgroundMenu(views::Widget* widget, const gfx::Point& location);
138 135
139 // Toggles app list. 136 // Toggles app list.
140 void ToggleAppList(); 137 void ToggleAppList();
141 138
142 // Sets the desktop background mode.
143 void SetDesktopBackgroundMode(BackgroundMode mode);
144
145 // Returns true if the screen is locked. 139 // Returns true if the screen is locked.
146 bool IsScreenLocked() const; 140 bool IsScreenLocked() const;
147 141
148 // Returns true if a modal dialog window is currently open. 142 // Returns true if a modal dialog window is currently open.
149 bool IsModalWindowOpen() const; 143 bool IsModalWindowOpen() const;
150 144
151 // Creates a default views::NonClientFrameView for use by windows in the 145 // Creates a default views::NonClientFrameView for use by windows in the
152 // Ash environment. 146 // Ash environment.
153 views::NonClientFrameView* CreateDefaultNonClientFrameView( 147 views::NonClientFrameView* CreateDefaultNonClientFrameView(
154 views::Widget* widget); 148 views::Widget* widget);
(...skipping 16 matching lines...) Expand all
171 165
172 internal::RootWindowEventFilter* root_filter() { 166 internal::RootWindowEventFilter* root_filter() {
173 return root_filter_; 167 return root_filter_;
174 } 168 }
175 internal::TooltipController* tooltip_controller() { 169 internal::TooltipController* tooltip_controller() {
176 return tooltip_controller_.get(); 170 return tooltip_controller_.get();
177 } 171 }
178 internal::PartialScreenshotEventFilter* partial_screenshot_filter() { 172 internal::PartialScreenshotEventFilter* partial_screenshot_filter() {
179 return partial_screenshot_filter_.get(); 173 return partial_screenshot_filter_.get();
180 } 174 }
175 DesktopBackgroundController* desktop_background_controller() {
176 return desktop_background_controller_.get();
177 }
181 PowerButtonController* power_button_controller() { 178 PowerButtonController* power_button_controller() {
182 return power_button_controller_.get(); 179 return power_button_controller_.get();
183 } 180 }
184 VideoDetector* video_detector() { 181 VideoDetector* video_detector() {
185 return video_detector_.get(); 182 return video_detector_.get();
186 } 183 }
187 WindowCycleController* window_cycle_controller() { 184 WindowCycleController* window_cycle_controller() {
188 return window_cycle_controller_.get(); 185 return window_cycle_controller_.get();
189 } 186 }
190 internal::FocusCycler* focus_cycler() { 187 internal::FocusCycler* focus_cycler() {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 scoped_ptr<internal::AppList> app_list_; 264 scoped_ptr<internal::AppList> app_list_;
268 265
269 scoped_ptr<internal::StackingController> stacking_controller_; 266 scoped_ptr<internal::StackingController> stacking_controller_;
270 scoped_ptr<internal::ActivationController> activation_controller_; 267 scoped_ptr<internal::ActivationController> activation_controller_;
271 scoped_ptr<internal::WindowModalityController> window_modality_controller_; 268 scoped_ptr<internal::WindowModalityController> window_modality_controller_;
272 scoped_ptr<internal::DragDropController> drag_drop_controller_; 269 scoped_ptr<internal::DragDropController> drag_drop_controller_;
273 scoped_ptr<internal::WorkspaceController> workspace_controller_; 270 scoped_ptr<internal::WorkspaceController> workspace_controller_;
274 scoped_ptr<internal::ShadowController> shadow_controller_; 271 scoped_ptr<internal::ShadowController> shadow_controller_;
275 scoped_ptr<internal::TooltipController> tooltip_controller_; 272 scoped_ptr<internal::TooltipController> tooltip_controller_;
276 scoped_ptr<internal::VisibilityController> visibility_controller_; 273 scoped_ptr<internal::VisibilityController> visibility_controller_;
274 scoped_ptr<DesktopBackgroundController> desktop_background_controller_;
277 scoped_ptr<PowerButtonController> power_button_controller_; 275 scoped_ptr<PowerButtonController> power_button_controller_;
278 scoped_ptr<VideoDetector> video_detector_; 276 scoped_ptr<VideoDetector> video_detector_;
279 scoped_ptr<WindowCycleController> window_cycle_controller_; 277 scoped_ptr<WindowCycleController> window_cycle_controller_;
280 scoped_ptr<internal::FocusCycler> focus_cycler_; 278 scoped_ptr<internal::FocusCycler> focus_cycler_;
281 279
282 // These controllers are not owned by the shell. 280 // These controllers are not owned by the shell.
283 AudioController* audio_controller_; 281 AudioController* audio_controller_;
284 BrightnessController* brightness_controller_; 282 BrightnessController* brightness_controller_;
285 NetworkController* network_controller_; 283 NetworkController* network_controller_;
286 PowerStatusController* power_status_controller_; 284 PowerStatusController* power_status_controller_;
(...skipping 10 matching lines...) Expand all
297 scoped_ptr<internal::AcceleratorFilter> accelerator_filter_; 295 scoped_ptr<internal::AcceleratorFilter> accelerator_filter_;
298 #endif 296 #endif
299 297
300 // The shelf for managing the launcher and the status widget in non-compact 298 // The shelf for managing the launcher and the status widget in non-compact
301 // mode. Shell does not own the shelf. Instead, it is owned by container of 299 // mode. Shell does not own the shelf. Instead, it is owned by container of
302 // the status area. 300 // the status area.
303 internal::ShelfLayoutManager* shelf_; 301 internal::ShelfLayoutManager* shelf_;
304 302
305 ObserverList<ShellObserver> observers_; 303 ObserverList<ShellObserver> observers_;
306 304
307 // Can change at runtime.
308 BackgroundMode desktop_background_mode_;
309
310 // Owned by aura::RootWindow, cached here for type safety. 305 // Owned by aura::RootWindow, cached here for type safety.
311 internal::RootWindowLayoutManager* root_window_layout_; 306 internal::RootWindowLayoutManager* root_window_layout_;
312 307
313 // Status area with clock, Wi-Fi signal, etc. 308 // Status area with clock, Wi-Fi signal, etc.
314 views::Widget* status_widget_; 309 views::Widget* status_widget_;
315 310
316 // System tray with clock, Wi-Fi signal, etc. (a replacement in progress for 311 // System tray with clock, Wi-Fi signal, etc. (a replacement in progress for
317 // |status_widget_|). 312 // |status_widget_|).
318 scoped_ptr<SystemTray> tray_; 313 scoped_ptr<SystemTray> tray_;
319 314
320 DISALLOW_COPY_AND_ASSIGN(Shell); 315 DISALLOW_COPY_AND_ASSIGN(Shell);
321 }; 316 };
322 317
323 } // namespace ash 318 } // namespace ash
324 319
325 #endif // ASH_SHELL_H_ 320 #endif // ASH_SHELL_H_
OLDNEW
« no previous file with comments | « ash/desktop_background/desktop_background_view.cc ('k') | ash/shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698