Index: cc/top_controls_manager.h |
diff --git a/cc/top_controls_manager.h b/cc/top_controls_manager.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f81f4dfa0a9f83c688ccb76b30e93bfef8256c12 |
--- /dev/null |
+++ b/cc/top_controls_manager.h |
@@ -0,0 +1,79 @@ |
+// Copyright 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CC_TOP_CONTROLS_MANAGER_H_ |
+#define CC_TOP_CONTROLS_MANAGER_H_ |
+ |
+#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
+#include "cc/layer_impl.h" |
+#include "ui/gfx/size.h" |
+#include "ui/gfx/vector2d_f.h" |
+ |
+namespace base { |
+class TimeTicks; |
+} |
+ |
+namespace cc { |
+ |
+class LayerTreeImpl; |
+class TopControlsAnimation; |
+ |
+class TopControlsDelegate { |
jamesr
2012/12/19 22:56:29
this should have a protected destructor since it w
Ted C
2012/12/20 00:42:39
Done.
|
+ public: |
+ virtual void setNeedsRedraw() = 0; |
+ virtual void setNeedsUpdateDrawProperties() = 0; |
+ virtual LayerTreeImpl* activeTree() = 0; |
+}; |
+ |
+// Manages the position of the top controls. |
+class TopControlsManager { |
+ public: |
+ static scoped_ptr<TopControlsManager> Create(TopControlsDelegate* delegate, |
+ float top_controls_height); |
+ virtual ~TopControlsManager(); |
+ |
+ float controls_top_offset() { return controls_top_offset_; } |
+ float content_top_offset() { return content_top_offset_; } |
+ float is_overlay_mode() { return is_overlay_mode_; } |
+ TopControlsAnimation* animation() { return top_controls_animation_.get(); } |
+ |
+ void UpdateDrawPositions(); |
+ |
+ void ScrollBegin(); |
+ gfx::Vector2dF ScrollBy(const gfx::Vector2dF pending_delta); |
+ void ScrollEnd(); |
+ |
+ void Animate(base::TimeTicks monotonic_time); |
+ |
+ protected: |
+ TopControlsManager(TopControlsDelegate* delegate, float top_controls_height); |
+ |
+ private: |
+ gfx::Vector2dF ScrollInternal(const gfx::Vector2dF pending_delta); |
+ void ResetAnimations(); |
+ LayerImpl* RootScrollLayer(); |
+ float RootScrollLayerTotalScrollY(); |
+ void StartAnimationIfNecessary(); |
+ void StartAutoHideAnimation(int64 triggered_time); |
+ |
+ base::WeakPtrFactory<TopControlsManager> weak_ptr_factory_; |
+ |
+ TopControlsDelegate* delegate_; // owned by this. |
+ |
jamesr
2012/12/19 22:56:29
I don't think this comment can be right - we never
Ted C
2012/12/20 00:42:39
Yeah...poorly worded. I meant the delegate is the
|
+ scoped_ptr<TopControlsAnimation> top_controls_animation_; |
+ bool is_overlay_mode_; |
+ float controls_top_offset_; |
+ float content_top_offset_; |
+ float top_controls_height_; |
+ int64 top_controls_auto_hide_trigger_time_; |
+ bool scroll_readjustment_enabled_; |
+ float previous_root_scroll_offset_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TopControlsManager); |
+}; |
+ |
+} // namespace cc |
+ |
+#endif // CC_TOP_CONTROLS_MANAGER_H_ |