Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Side by Side Diff: cc/input/scrollbar_animation_controller.h

Issue 2841943002: Overlay scrollbars expand only when mouse is near thumb (Closed)
Patch Set: weiliangc comment addressed Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | cc/input/scrollbar_animation_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #ifndef CC_INPUT_SCROLLBAR_ANIMATION_CONTROLLER_H_ 5 #ifndef CC_INPUT_SCROLLBAR_ANIMATION_CONTROLLER_H_
6 #define CC_INPUT_SCROLLBAR_ANIMATION_CONTROLLER_H_ 6 #define CC_INPUT_SCROLLBAR_ANIMATION_CONTROLLER_H_
7 7
8 #include "base/cancelable_callback.h" 8 #include "base/cancelable_callback.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 // DidScrollUpdate expects to be called only if the scroll position change. 69 // DidScrollUpdate expects to be called only if the scroll position change.
70 // Effect both Android and Aura Overlay Scrollbar. 70 // Effect both Android and Aura Overlay Scrollbar.
71 void DidScrollUpdate(); 71 void DidScrollUpdate();
72 72
73 void DidScrollBegin(); 73 void DidScrollBegin();
74 void DidScrollEnd(); 74 void DidScrollEnd();
75 75
76 void DidMouseDown(); 76 void DidMouseDown();
77 void DidMouseUp(); 77 void DidMouseUp();
78 void DidMouseLeave(); 78 void DidMouseLeave();
79 void DidMouseMoveNear(ScrollbarOrientation, float); 79 void DidMouseMove(const gfx::PointF& device_viewport_point);
80 80
81 // Called when Blink wants to show the scrollbars (via 81 // Called when Blink wants to show the scrollbars (via
82 // ScrollableArea::showOverlayScrollbars). 82 // ScrollableArea::showOverlayScrollbars).
83 void DidRequestShowFromMainThread(); 83 void DidRequestShowFromMainThread();
84 84
85 bool MouseIsOverScrollbar(ScrollbarOrientation orientation) const; 85 // These methods are public for testing.
86 bool MouseIsOverScrollbarThumb(ScrollbarOrientation orientation) const;
87 bool MouseIsNearScrollbarThumb(ScrollbarOrientation orientation) const;
86 bool MouseIsNearScrollbar(ScrollbarOrientation orientation) const; 88 bool MouseIsNearScrollbar(ScrollbarOrientation orientation) const;
87 bool MouseIsNearAnyScrollbar() const; 89 bool MouseIsNearAnyScrollbar() const;
88 90
89 static constexpr float kMouseMoveDistanceToTriggerFadeIn = 30.0f; 91 static constexpr float kMouseMoveDistanceToTriggerFadeIn = 30.0f;
90 92
91 private: 93 private:
92 // Describes whether the current animation should FadeIn or FadeOut. 94 // Describes whether the current animation should FadeIn or FadeOut.
93 enum AnimationChange { NONE, FADE_IN, FADE_OUT }; 95 enum AnimationChange { NONE, FADE_IN, FADE_OUT };
94 96
95 ScrollbarAnimationController(ElementId scroll_element_id, 97 ScrollbarAnimationController(ElementId scroll_element_id,
(...skipping 18 matching lines...) Expand all
114 116
115 void StartAnimation(); 117 void StartAnimation();
116 void StopAnimation(); 118 void StopAnimation();
117 119
118 void Show(); 120 void Show();
119 121
120 void PostDelayedAnimation(AnimationChange animation_change); 122 void PostDelayedAnimation(AnimationChange animation_change);
121 123
122 bool Captured() const; 124 bool Captured() const;
123 125
124 bool CalcNeedTriggerScrollbarShow(ScrollbarOrientation orientation,
125 float distance) const;
126
127 void ApplyOpacityToScrollbars(float opacity); 126 void ApplyOpacityToScrollbars(float opacity);
128 127
129 ScrollbarAnimationControllerClient* client_; 128 ScrollbarAnimationControllerClient* client_;
130 129
131 base::TimeTicks last_awaken_time_; 130 base::TimeTicks last_awaken_time_;
132 131
133 base::TimeDelta fade_delay_; 132 base::TimeDelta fade_delay_;
134 133
135 base::TimeDelta fade_duration_; 134 base::TimeDelta fade_duration_;
136 135
137 bool need_trigger_scrollbar_show_; 136 bool need_trigger_scrollbar_fade_in_;
138 137
139 bool is_animating_; 138 bool is_animating_;
140 AnimationChange animation_change_; 139 AnimationChange animation_change_;
141 140
142 const ElementId scroll_element_id_; 141 const ElementId scroll_element_id_;
143 bool currently_scrolling_; 142 bool currently_scrolling_;
144 bool show_in_fast_scroll_; 143 bool show_in_fast_scroll_;
145 144
146 base::CancelableClosure delayed_scrollbar_animation_; 145 base::CancelableClosure delayed_scrollbar_animation_;
147 146
148 float opacity_; 147 float opacity_;
149 148
150 const bool show_scrollbars_on_scroll_gesture_; 149 const bool show_scrollbars_on_scroll_gesture_;
151 const bool need_thinning_animation_; 150 const bool need_thinning_animation_;
151
152 std::unique_ptr<SingleScrollbarAnimationControllerThinning> 152 std::unique_ptr<SingleScrollbarAnimationControllerThinning>
153 vertical_controller_; 153 vertical_controller_;
154 std::unique_ptr<SingleScrollbarAnimationControllerThinning> 154 std::unique_ptr<SingleScrollbarAnimationControllerThinning>
155 horizontal_controller_; 155 horizontal_controller_;
156 156
157 base::WeakPtrFactory<ScrollbarAnimationController> weak_factory_; 157 base::WeakPtrFactory<ScrollbarAnimationController> weak_factory_;
158 }; 158 };
159 159
160 } // namespace cc 160 } // namespace cc
161 161
162 #endif // CC_INPUT_SCROLLBAR_ANIMATION_CONTROLLER_H_ 162 #endif // CC_INPUT_SCROLLBAR_ANIMATION_CONTROLLER_H_
OLDNEW
« no previous file with comments | « no previous file | cc/input/scrollbar_animation_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698