OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "cc/input/top_controls_manager.h" | 5 #include "cc/input/top_controls_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "cc/animation/keyframed_animation_curve.h" | 10 #include "cc/animation/keyframed_animation_curve.h" |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 } | 94 } |
95 | 95 |
96 void TopControlsManager::ScrollBegin() { | 96 void TopControlsManager::ScrollBegin() { |
97 DCHECK(!pinch_gesture_active_); | 97 DCHECK(!pinch_gesture_active_); |
98 ResetAnimations(); | 98 ResetAnimations(); |
99 ResetBaseline(); | 99 ResetBaseline(); |
100 } | 100 } |
101 | 101 |
102 gfx::Vector2dF TopControlsManager::ScrollBy( | 102 gfx::Vector2dF TopControlsManager::ScrollBy( |
103 const gfx::Vector2dF& pending_delta) { | 103 const gfx::Vector2dF& pending_delta) { |
| 104 if (!TopControlsHeight()) |
| 105 return pending_delta; |
| 106 |
104 if (pinch_gesture_active_) | 107 if (pinch_gesture_active_) |
105 return pending_delta; | 108 return pending_delta; |
106 | 109 |
107 if (!TopControlsHeight()) | 110 if (!TopControlsHeight()) |
108 return pending_delta; | 111 return pending_delta; |
109 | 112 |
110 if (permitted_state_ == SHOWN && pending_delta.y() > 0) | 113 if (permitted_state_ == SHOWN && pending_delta.y() > 0) |
111 return pending_delta; | 114 return pending_delta; |
112 else if (permitted_state_ == HIDDEN && pending_delta.y() < 0) | 115 else if (permitted_state_ == HIDDEN && pending_delta.y() < 0) |
113 return pending_delta; | 116 return pending_delta; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 } | 179 } |
177 | 180 |
178 void TopControlsManager::SetupAnimation(AnimationDirection direction) { | 181 void TopControlsManager::SetupAnimation(AnimationDirection direction) { |
179 DCHECK_NE(NO_ANIMATION, direction); | 182 DCHECK_NE(NO_ANIMATION, direction); |
180 DCHECK_IMPLIES(direction == HIDING_CONTROLS, TopControlsShownRatio() > 0.f); | 183 DCHECK_IMPLIES(direction == HIDING_CONTROLS, TopControlsShownRatio() > 0.f); |
181 DCHECK_IMPLIES(direction == SHOWING_CONTROLS, TopControlsShownRatio() < 1.f); | 184 DCHECK_IMPLIES(direction == SHOWING_CONTROLS, TopControlsShownRatio() < 1.f); |
182 | 185 |
183 if (top_controls_animation_ && animation_direction_ == direction) | 186 if (top_controls_animation_ && animation_direction_ == direction) |
184 return; | 187 return; |
185 | 188 |
| 189 if (!TopControlsHeight()) { |
| 190 client_->SetCurrentTopControlsShownRatio( |
| 191 direction == HIDING_CONTROLS ? 0.f : 1.f); |
| 192 return; |
| 193 } |
| 194 |
186 top_controls_animation_ = KeyframedFloatAnimationCurve::Create(); | 195 top_controls_animation_ = KeyframedFloatAnimationCurve::Create(); |
187 base::TimeDelta start_time = gfx::FrameTime::Now() - base::TimeTicks(); | 196 base::TimeDelta start_time = gfx::FrameTime::Now() - base::TimeTicks(); |
188 top_controls_animation_->AddKeyframe( | 197 top_controls_animation_->AddKeyframe( |
189 FloatKeyframe::Create(start_time, TopControlsShownRatio(), nullptr)); | 198 FloatKeyframe::Create(start_time, TopControlsShownRatio(), nullptr)); |
190 float max_ending_ratio = (direction == SHOWING_CONTROLS ? 1 : -1); | 199 float max_ending_ratio = (direction == SHOWING_CONTROLS ? 1 : -1); |
191 top_controls_animation_->AddKeyframe(FloatKeyframe::Create( | 200 top_controls_animation_->AddKeyframe(FloatKeyframe::Create( |
192 start_time + base::TimeDelta::FromMilliseconds(kShowHideMaxDurationMs), | 201 start_time + base::TimeDelta::FromMilliseconds(kShowHideMaxDurationMs), |
193 TopControlsShownRatio() + max_ending_ratio, | 202 TopControlsShownRatio() + max_ending_ratio, |
194 EaseTimingFunction::Create())); | 203 EaseTimingFunction::Create())); |
195 animation_direction_ = direction; | 204 animation_direction_ = direction; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 } | 237 } |
229 return false; | 238 return false; |
230 } | 239 } |
231 | 240 |
232 void TopControlsManager::ResetBaseline() { | 241 void TopControlsManager::ResetBaseline() { |
233 accumulated_scroll_delta_ = 0.f; | 242 accumulated_scroll_delta_ = 0.f; |
234 baseline_content_offset_ = ContentTopOffset(); | 243 baseline_content_offset_ = ContentTopOffset(); |
235 } | 244 } |
236 | 245 |
237 } // namespace cc | 246 } // namespace cc |
OLD | NEW |