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

Side by Side Diff: ash/wm/session_state_animator.h

Issue 11453012: Fix black background when locking with fullscreen window: (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rename undo/stop to cancel Created 8 years 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
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_WM_SESSION_STATE_ANIMATOR_H_ 5 #ifndef ASH_WM_SESSION_STATE_ANIMATOR_H_
6 #define ASH_WM_SESSION_STATE_ANIMATOR_H_ 6 #define ASH_WM_SESSION_STATE_ANIMATOR_H_
7 7
8 #include "ash/ash_export.h" 8 #include "ash/ash_export.h"
9 #include "ash/wm/workspace/colored_window_controller.h" 9 #include "ash/wm/workspace/colored_window_controller.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/timer.h" 12 #include "base/timer.h"
13 #include "ui/aura/window.h" 13 #include "ui/aura/window.h"
14 #include "ui/compositor/layer_animation_observer.h"
14 15
15 namespace gfx { 16 namespace gfx {
16 class Rect; 17 class Rect;
17 class Size; 18 class Size;
18 } 19 }
19 20
20 namespace ui { 21 namespace ui {
21 class Layer; 22 class Layer;
22 } 23 }
23 24
24 namespace ash { 25 namespace ash {
25 namespace internal { 26 namespace internal {
26 27
27 // Displays onscreen animations for session state changes (lock/unlock, sign 28 // Displays onscreen animations for session state changes (lock/unlock, sign
28 // out, shut down). 29 // out, shut down).
29 class ASH_EXPORT SessionStateAnimator { 30 class ASH_EXPORT SessionStateAnimator {
30 public: 31 public:
31 // Animations that can be applied to groups of containers. 32 // Animations that can be applied to groups of containers.
32 enum AnimationType { 33 enum AnimationType {
33 ANIMATION_PARTIAL_CLOSE = 0, 34 ANIMATION_PARTIAL_CLOSE = 0,
34 ANIMATION_UNDO_PARTIAL_CLOSE, 35 ANIMATION_UNDO_PARTIAL_CLOSE,
35 ANIMATION_FULL_CLOSE, 36 ANIMATION_FULL_CLOSE,
36 ANIMATION_FADE_IN, 37 ANIMATION_FADE_IN,
38 ANIMATION_FADE_OUT,
37 ANIMATION_HIDE_IMMEDIATELY, 39 ANIMATION_HIDE_IMMEDIATELY,
38 ANIMATION_RESTORE, 40 ANIMATION_RESTORE,
39 // Animations that raise/lower windows to/from area "in front" of the 41 // Animations that raise/lower windows to/from area "in front" of the
40 // screen. 42 // screen.
41 ANIMATION_LIFT, 43 ANIMATION_LIFT,
44 ANIMATION_UNDO_LIFT,
42 ANIMATION_DROP, 45 ANIMATION_DROP,
43 // Animations that raise/lower windows from/to area "behind" of the screen. 46 // Animations that raise/lower windows from/to area "behind" of the screen.
44 ANIMATION_RAISE_TO_SCREEN, 47 ANIMATION_RAISE_TO_SCREEN,
45 ANIMATION_LOWER_BELOW_SCREEN, 48 ANIMATION_LOWER_BELOW_SCREEN,
46 ANIMATION_PARTIAL_FADE_IN, 49 ANIMATION_PARTIAL_FADE_IN,
47 ANIMATION_UNDO_PARTIAL_FADE_IN, 50 ANIMATION_UNDO_PARTIAL_FADE_IN,
48 ANIMATION_FULL_FADE_IN, 51 ANIMATION_FULL_FADE_IN,
49 ANIMATION_GRAYSCALE_BRIGHTNESS, 52 ANIMATION_GRAYSCALE_BRIGHTNESS,
50 ANIMATION_UNDO_GRAYSCALE_BRIGHTNESS, 53 ANIMATION_UNDO_GRAYSCALE_BRIGHTNESS,
51 }; 54 };
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 // user session windows are hidden and lock UI is shown on top of it. 93 // user session windows are hidden and lock UI is shown on top of it.
91 // This layer is included in shutdown animation. 94 // This layer is included in shutdown animation.
92 LOCK_SCREEN_BACKGROUND = 1 << 3, 95 LOCK_SCREEN_BACKGROUND = 1 << 3,
93 96
94 // Lock screen and lock screen modal containers. 97 // Lock screen and lock screen modal containers.
95 LOCK_SCREEN_CONTAINERS = 1 << 4, 98 LOCK_SCREEN_CONTAINERS = 1 << 4,
96 99
97 // Multiple system layers belong here like status, menu, tooltip 100 // Multiple system layers belong here like status, menu, tooltip
98 // and overlay layers. 101 // and overlay layers.
99 LOCK_SCREEN_RELATED_CONTAINERS = 1 << 5, 102 LOCK_SCREEN_RELATED_CONTAINERS = 1 << 5,
100
101 LOCK_SCREEN_SYSTEM_FOREGROUND = 1 << 6,
102 }; 103 };
103 104
104 // Helper class used by tests to access internal state. 105 // Helper class used by tests to access internal state.
105 class ASH_EXPORT TestApi { 106 class ASH_EXPORT TestApi {
106 public: 107 public:
107 explicit TestApi(SessionStateAnimator* animator) 108 explicit TestApi(SessionStateAnimator* animator)
108 : animator_(animator) {} 109 : animator_(animator) {}
109 110
110 // Returns true if containers of a given |container_mask| 111 // Returns true if containers of a given |container_mask|
111 // were last animated with |type| (probably; the analysis is fairly ad-hoc). 112 // were last animated with |type| (probably; the analysis is fairly ad-hoc).
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 AnimationSpeed speed); 153 AnimationSpeed speed);
153 154
154 // Apply animation |type| to all containers included in |container_mask| with 155 // Apply animation |type| to all containers included in |container_mask| with
155 // specified |speed| and call a |callback| at the end of the animation, if it 156 // specified |speed| and call a |callback| at the end of the animation, if it
156 // is not null. 157 // is not null.
157 void StartAnimationWithCallback(int container_mask, 158 void StartAnimationWithCallback(int container_mask,
158 AnimationType type, 159 AnimationType type,
159 AnimationSpeed speed, 160 AnimationSpeed speed,
160 base::Callback<void(void)>& callback); 161 base::Callback<void(void)>& callback);
161 162
163 // Apply animation |type| to all containers included in |container_mask| with
Daniel Erat 2012/12/13 21:47:33 nit: indent this comment two more spaces
164 // specified |speed| and add |observer| to all animations.
165 void StartAnimationWithObserver(int container_mask,
166 AnimationType type,
167 AnimationSpeed speed,
168 ui::LayerAnimationObserver* observer);
169
162 // Applies animation |type| whith specified |speed| to the root container. 170 // Applies animation |type| whith specified |speed| to the root container.
163 void StartGlobalAnimation(AnimationType type, 171 void StartGlobalAnimation(AnimationType type,
164 AnimationSpeed speed); 172 AnimationSpeed speed);
165 173
166 // Apply animation |type| to window |window| with |speed| and add |observer| 174 // Apply animation |type| to window |window| with |speed| and add |observer|
167 // if it is not NULL to the last animation sequence. 175 // if it is not NULL to the last animation sequence.
168 void RunAnimationForWindow(aura::Window* window, 176 void RunAnimationForWindow(aura::Window* window,
169 AnimationType type, 177 AnimationType type,
170 AnimationSpeed speed, 178 AnimationSpeed speed,
171 ui::LayerAnimationObserver* observer); 179 ui::LayerAnimationObserver* observer);
172 180
173 // White foreground that is used during shutdown animation to "fade 181 // White foreground that is used during shutdown animation to "fade
174 // everything into white". 182 // everything into white".
175 scoped_ptr<ColoredWindowController> foreground_; 183 scoped_ptr<ColoredWindowController> foreground_;
176 184
177 DISALLOW_COPY_AND_ASSIGN(SessionStateAnimator); 185 DISALLOW_COPY_AND_ASSIGN(SessionStateAnimator);
178 }; 186 };
179 187
180 } // namespace internal 188 } // namespace internal
181 } // namespace ash 189 } // namespace ash
182 190
183 #endif // ASH_WM_SESSION_STATE_ANIMATOR_H_ 191 #endif // ASH_WM_SESSION_STATE_ANIMATOR_H_
OLDNEW
« no previous file with comments | « no previous file | ash/wm/session_state_animator.cc » ('j') | ash/wm/session_state_controller_impl2.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698