| 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 |