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 #include "ash/wm/session_state_animator.h" | 5 #include "ash/wm/session_state_animator.h" |
6 | 6 |
7 #include "ash/common/shell_window_ids.h" | 7 #include "ash/common/shell_window_ids.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "ash/wm/window_animations.h" | 9 #include "ash/wm/window_animations.h" |
10 #include "ui/aura/client/aura_constants.h" | 10 #include "ui/aura/client/aura_constants.h" |
11 #include "ui/aura/window_event_dispatcher.h" | 11 #include "ui/aura/window_event_dispatcher.h" |
12 #include "ui/compositor/layer_animation_observer.h" | 12 #include "ui/compositor/layer_animation_observer.h" |
13 #include "ui/compositor/layer_animation_sequence.h" | 13 #include "ui/compositor/layer_animation_sequence.h" |
14 #include "ui/compositor/scoped_layer_animation_settings.h" | 14 #include "ui/compositor/scoped_layer_animation_settings.h" |
15 #include "ui/views/widget/widget.h" | 15 #include "ui/views/widget/widget.h" |
16 | 16 |
17 namespace ash { | 17 namespace ash { |
18 | 18 |
19 const int SessionStateAnimator::kAllLockScreenContainersMask = | 19 const int SessionStateAnimator::kAllLockScreenContainersMask = |
20 SessionStateAnimator::LOCK_SCREEN_BACKGROUND | | 20 SessionStateAnimator::LOCK_SCREEN_BACKGROUND | |
21 SessionStateAnimator::LOCK_SCREEN_CONTAINERS | | 21 SessionStateAnimator::LOCK_SCREEN_CONTAINERS | |
22 SessionStateAnimator::LOCK_SCREEN_RELATED_CONTAINERS; | 22 SessionStateAnimator::LOCK_SCREEN_RELATED_CONTAINERS; |
23 | 23 |
24 const int SessionStateAnimator::kAllNonRootContainersMask = | 24 const int SessionStateAnimator::kAllNonRootContainersMask = |
25 SessionStateAnimator::kAllLockScreenContainersMask | | 25 SessionStateAnimator::kAllLockScreenContainersMask | |
26 SessionStateAnimator::DESKTOP_BACKGROUND | | 26 SessionStateAnimator::DESKTOP_BACKGROUND | SessionStateAnimator::LAUNCHER | |
27 SessionStateAnimator::LAUNCHER | | |
28 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS; | 27 SessionStateAnimator::NON_LOCK_SCREEN_CONTAINERS; |
29 | 28 |
30 SessionStateAnimator::AnimationSequence::AnimationSequence( | 29 SessionStateAnimator::AnimationSequence::AnimationSequence( |
31 base::Closure callback) | 30 base::Closure callback) |
32 : sequence_ended_(false), | 31 : sequence_ended_(false), |
33 animation_completed_(false), | 32 animation_completed_(false), |
34 invoke_callback_(false), | 33 invoke_callback_(false), |
35 callback_(callback) { | 34 callback_(callback) {} |
36 } | |
37 | 35 |
38 SessionStateAnimator::AnimationSequence::~AnimationSequence() { | 36 SessionStateAnimator::AnimationSequence::~AnimationSequence() {} |
39 } | |
40 | 37 |
41 void SessionStateAnimator::AnimationSequence::EndSequence() { | 38 void SessionStateAnimator::AnimationSequence::EndSequence() { |
42 sequence_ended_ = true; | 39 sequence_ended_ = true; |
43 CleanupIfSequenceCompleted(); | 40 CleanupIfSequenceCompleted(); |
44 } | 41 } |
45 | 42 |
46 void SessionStateAnimator::AnimationSequence::OnAnimationCompleted() { | 43 void SessionStateAnimator::AnimationSequence::OnAnimationCompleted() { |
47 animation_completed_ = true; | 44 animation_completed_ = true; |
48 invoke_callback_ = true; | 45 invoke_callback_ = true; |
49 CleanupIfSequenceCompleted(); | 46 CleanupIfSequenceCompleted(); |
50 } | 47 } |
51 | 48 |
52 void SessionStateAnimator::AnimationSequence::OnAnimationAborted() { | 49 void SessionStateAnimator::AnimationSequence::OnAnimationAborted() { |
53 animation_completed_ = true; | 50 animation_completed_ = true; |
54 invoke_callback_ = false; | 51 invoke_callback_ = false; |
55 CleanupIfSequenceCompleted(); | 52 CleanupIfSequenceCompleted(); |
56 } | 53 } |
57 | 54 |
58 void SessionStateAnimator::AnimationSequence::CleanupIfSequenceCompleted() { | 55 void SessionStateAnimator::AnimationSequence::CleanupIfSequenceCompleted() { |
59 if (sequence_ended_ && animation_completed_) { | 56 if (sequence_ended_ && animation_completed_) { |
60 if (invoke_callback_) | 57 if (invoke_callback_) |
61 callback_.Run(); | 58 callback_.Run(); |
62 delete this; | 59 delete this; |
63 } | 60 } |
64 } | 61 } |
65 | 62 |
66 SessionStateAnimator::SessionStateAnimator() { | 63 SessionStateAnimator::SessionStateAnimator() {} |
67 } | |
68 | 64 |
69 SessionStateAnimator::~SessionStateAnimator() { | 65 SessionStateAnimator::~SessionStateAnimator() {} |
70 } | |
71 | 66 |
72 base::TimeDelta SessionStateAnimator::GetDuration( | 67 base::TimeDelta SessionStateAnimator::GetDuration( |
73 SessionStateAnimator::AnimationSpeed speed) { | 68 SessionStateAnimator::AnimationSpeed speed) { |
74 switch (speed) { | 69 switch (speed) { |
75 case ANIMATION_SPEED_IMMEDIATE: | 70 case ANIMATION_SPEED_IMMEDIATE: |
76 return base::TimeDelta(); | 71 return base::TimeDelta(); |
77 case ANIMATION_SPEED_UNDOABLE: | 72 case ANIMATION_SPEED_UNDOABLE: |
78 return base::TimeDelta::FromMilliseconds(400); | 73 return base::TimeDelta::FromMilliseconds(400); |
79 case ANIMATION_SPEED_REVERT: | 74 case ANIMATION_SPEED_REVERT: |
80 return base::TimeDelta::FromMilliseconds(150); | 75 return base::TimeDelta::FromMilliseconds(150); |
(...skipping 10 matching lines...) Expand all Loading... |
91 case ANIMATION_SPEED_REVERT_SHUTDOWN: | 86 case ANIMATION_SPEED_REVERT_SHUTDOWN: |
92 return base::TimeDelta::FromMilliseconds(500); | 87 return base::TimeDelta::FromMilliseconds(500); |
93 } | 88 } |
94 // Satisfy compilers that do not understand that we will return from switch | 89 // Satisfy compilers that do not understand that we will return from switch |
95 // above anyway. | 90 // above anyway. |
96 DCHECK(false) << "Unhandled animation speed " << speed; | 91 DCHECK(false) << "Unhandled animation speed " << speed; |
97 return base::TimeDelta(); | 92 return base::TimeDelta(); |
98 } | 93 } |
99 | 94 |
100 } // namespace ash | 95 } // namespace ash |
OLD | NEW |