Index: cc/input/top_controls_manager.cc |
diff --git a/cc/input/top_controls_manager.cc b/cc/input/top_controls_manager.cc |
index 07a9e19e95ef5620b63717e2a3a02f7c02ff4c50..e9722472454784c27d43d098496c9ad763fc2fb5 100644 |
--- a/cc/input/top_controls_manager.cc |
+++ b/cc/input/top_controls_manager.cc |
@@ -42,7 +42,6 @@ TopControlsManager::TopControlsManager(TopControlsManagerClient* client, |
: client_(client), |
animation_direction_(NO_ANIMATION), |
permitted_state_(BOTH), |
- controls_top_offset_(0.f), |
top_controls_height_(top_controls_height), |
current_scroll_delta_(0.f), |
controls_scroll_begin_offset_(0.f), |
@@ -57,6 +56,14 @@ TopControlsManager::TopControlsManager(TopControlsManagerClient* client, |
TopControlsManager::~TopControlsManager() { |
} |
+float TopControlsManager::ControlsTopOffset() { |
+ return client_->ControlsTopOffset(); |
+} |
+ |
+float TopControlsManager::ContentTopOffset() { |
+ return client_->ControlsTopOffset() + top_controls_height_; |
+} |
+ |
void TopControlsManager::UpdateTopControlsState(TopControlsState constraints, |
TopControlsState current, |
bool animate) { |
@@ -74,7 +81,7 @@ void TopControlsManager::UpdateTopControlsState(TopControlsState constraints, |
if (constraints == HIDDEN || current == HIDDEN) { |
final_controls_position = -top_controls_height_; |
} |
- if (final_controls_position == controls_top_offset_) { |
+ if (final_controls_position == client_->ControlsTopOffset()) { |
return; |
} |
@@ -85,7 +92,7 @@ void TopControlsManager::UpdateTopControlsState(TopControlsState constraints, |
if (animate) { |
SetupAnimation(animation_direction); |
} else { |
- controls_top_offset_ = final_controls_position; |
+ client_->SetControlsTopOffset(final_controls_position); |
} |
client_->DidChangeTopControlsPosition(); |
} |
@@ -94,7 +101,7 @@ void TopControlsManager::ScrollBegin() { |
DCHECK(!pinch_gesture_active_); |
ResetAnimations(); |
current_scroll_delta_ = 0.f; |
- controls_scroll_begin_offset_ = controls_top_offset_; |
+ controls_scroll_begin_offset_ = client_->ControlsTopOffset(); |
} |
gfx::Vector2dF TopControlsManager::ScrollBy( |
@@ -109,19 +116,19 @@ gfx::Vector2dF TopControlsManager::ScrollBy( |
current_scroll_delta_ += pending_delta.y(); |
- float old_offset = controls_top_offset_; |
+ float old_offset = client_->ControlsTopOffset(); |
SetControlsTopOffset(controls_scroll_begin_offset_ - current_scroll_delta_); |
// If the controls are fully visible, treat the current position as the |
// new baseline even if the gesture didn't end. |
- if (controls_top_offset_ == 0.f) { |
+ if (client_->ControlsTopOffset() == 0.f) { |
current_scroll_delta_ = 0.f; |
controls_scroll_begin_offset_ = 0.f; |
} |
ResetAnimations(); |
- gfx::Vector2dF applied_delta(0.f, old_offset - controls_top_offset_); |
+ gfx::Vector2dF applied_delta(0.f, old_offset - client_->ControlsTopOffset()); |
return pending_delta - applied_delta; |
} |
@@ -148,10 +155,10 @@ void TopControlsManager::SetControlsTopOffset(float controls_top_offset) { |
controls_top_offset = std::max(controls_top_offset, -top_controls_height_); |
controls_top_offset = std::min(controls_top_offset, 0.f); |
- if (controls_top_offset_ == controls_top_offset) |
+ if (client_->ControlsTopOffset() == controls_top_offset) |
return; |
- controls_top_offset_ = controls_top_offset; |
+ client_->SetControlsTopOffset(controls_top_offset); |
client_->DidChangeTopControlsPosition(); |
} |
@@ -162,13 +169,13 @@ gfx::Vector2dF TopControlsManager::Animate(base::TimeTicks monotonic_time) { |
double time = (monotonic_time - base::TimeTicks()).InMillisecondsF(); |
- float old_offset = controls_top_offset_; |
+ float old_offset = client_->ControlsTopOffset(); |
SetControlsTopOffset(top_controls_animation_->GetValue(time)); |
if (IsAnimationCompleteAtTime(monotonic_time)) |
ResetAnimations(); |
- gfx::Vector2dF scroll_delta(0.f, controls_top_offset_ - old_offset); |
+ gfx::Vector2dF scroll_delta(0.f, client_->ControlsTopOffset() - old_offset); |
return scroll_delta; |
} |
@@ -182,11 +189,11 @@ void TopControlsManager::ResetAnimations() { |
void TopControlsManager::SetupAnimation(AnimationDirection direction) { |
DCHECK(direction != NO_ANIMATION); |
- if (direction == SHOWING_CONTROLS && controls_top_offset_ == 0) |
+ if (direction == SHOWING_CONTROLS && client_->ControlsTopOffset() == 0) |
return; |
if (direction == HIDING_CONTROLS && |
- controls_top_offset_ == -top_controls_height_) { |
+ client_->ControlsTopOffset() == -top_controls_height_) { |
return; |
} |
@@ -197,27 +204,27 @@ void TopControlsManager::SetupAnimation(AnimationDirection direction) { |
double start_time = |
(gfx::FrameTime::Now() - base::TimeTicks()).InMillisecondsF(); |
top_controls_animation_->AddKeyframe( |
- FloatKeyframe::Create(start_time, controls_top_offset_, |
+ FloatKeyframe::Create(start_time, client_->ControlsTopOffset(), |
scoped_ptr<TimingFunction>())); |
float max_ending_offset = |
(direction == SHOWING_CONTROLS ? 1 : -1) * top_controls_height_; |
top_controls_animation_->AddKeyframe( |
FloatKeyframe::Create(start_time + kShowHideMaxDurationMs, |
- controls_top_offset_ + max_ending_offset, |
+ client_->ControlsTopOffset() + max_ending_offset, |
EaseTimingFunction::Create())); |
animation_direction_ = direction; |
client_->DidChangeTopControlsPosition(); |
} |
void TopControlsManager::StartAnimationIfNecessary() { |
- if (controls_top_offset_ != 0 |
- && controls_top_offset_ != -top_controls_height_) { |
+ if (client_->ControlsTopOffset() != 0 |
+ && client_->ControlsTopOffset() != -top_controls_height_) { |
AnimationDirection show_controls = NO_ANIMATION; |
- if (controls_top_offset_ >= -top_controls_show_height_) { |
+ if (client_->ControlsTopOffset() >= -top_controls_show_height_) { |
// If we're showing so much that the hide threshold won't trigger, show. |
show_controls = SHOWING_CONTROLS; |
- } else if (controls_top_offset_ <= -top_controls_hide_height_) { |
+ } else if (client_->ControlsTopOffset() <= -top_controls_hide_height_) { |
// If we're showing so little that the show threshold won't trigger, hide. |
show_controls = HIDING_CONTROLS; |
} else { |