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

Unified Diff: cc/input/scrollbar_animation_controller_thinning.h

Issue 2554913002: Prevent overlay scrollbars expand or hover together (Closed)
Patch Set: for weiliangc's nit Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: cc/input/scrollbar_animation_controller_thinning.h
diff --git a/cc/input/scrollbar_animation_controller_thinning.h b/cc/input/scrollbar_animation_controller_thinning.h
index 236e595ea263ec5d9f090d913005b34bfbbcd967..1c53a977a25500ec8962a729151052275e43bc01 100644
--- a/cc/input/scrollbar_animation_controller_thinning.h
+++ b/cc/input/scrollbar_animation_controller_thinning.h
@@ -10,11 +10,17 @@
#include "base/macros.h"
#include "cc/base/cc_export.h"
#include "cc/input/scrollbar_animation_controller.h"
+#include "cc/input/single_scrollbar_animation_controller_thinning.h"
namespace cc {
-// Scrollbar animation that partially fades and thins after an idle delay,
-// and reacts to mouse movements.
+// This class fade in scrollbars when scroll and fade out after an idle delay.
+// The fade animations works on both scrollbars and is controlled in this class.
+
+// TODO(chaopeng) clean up the inheritance hierarchy after
+// ScrollbarAnimationControllerLinearFade merge into
+// ScrollbarAnimationControllerThinning so we can remove the empty overrides and
+// NOTREACHED() checks.
class CC_EXPORT ScrollbarAnimationControllerThinning
: public ScrollbarAnimationController {
public:
@@ -28,22 +34,14 @@ class CC_EXPORT ScrollbarAnimationControllerThinning
~ScrollbarAnimationControllerThinning() override;
- void set_mouse_move_distance_for_test(float distance) {
- mouse_move_distance_to_trigger_animation_ = distance;
- }
- bool mouse_is_over_scrollbar() const { return mouse_is_over_scrollbar_; }
- bool mouse_is_near_scrollbar() const { return mouse_is_near_scrollbar_; }
-
void DidScrollUpdate(bool on_resize) override;
void DidScrollEnd() override;
-
- void DidMouseDown() override;
- void DidMouseUp() override;
- void DidMouseLeave() override;
- void DidMouseMoveNear(float distance) override;
bool ScrollbarsHidden() const override;
protected:
+ bool NeedThinningAnimation() const override;
+
+ private:
ScrollbarAnimationControllerThinning(
int scroll_layer_id,
ScrollbarAnimationControllerClient* client,
@@ -52,38 +50,12 @@ class CC_EXPORT ScrollbarAnimationControllerThinning
base::TimeDelta fade_duration,
base::TimeDelta thinning_duration);
+ void ApplyOpacityToScrollbars(float opacity) override;
void RunAnimationFrame(float progress) override;
const base::TimeDelta& Duration() override;
- private:
- // Describes whether the current animation should INCREASE (thicken)
- // a bar or DECREASE it (thin).
- enum AnimationChange { NONE, INCREASE, DECREASE };
- enum AnimatingProperty { OPACITY, THICKNESS };
- float ThumbThicknessScaleAt(float progress);
- float AdjustScale(float new_value,
- float current_value,
- AnimationChange animation_change,
- float min_value,
- float max_value);
- void ApplyOpacity(float opacity);
- void ApplyThumbThicknessScale(float thumb_thickness_scale);
-
- void SetCurrentAnimatingProperty(AnimatingProperty property);
-
float opacity_;
- bool captured_;
- bool mouse_is_over_scrollbar_;
- bool mouse_is_near_scrollbar_;
- // Are we narrowing or thickening the bars.
- AnimationChange thickness_change_;
- // How close should the mouse be to the scrollbar before we thicken it.
- float mouse_move_distance_to_trigger_animation_;
-
base::TimeDelta fade_duration_;
- base::TimeDelta thinning_duration_;
-
- AnimatingProperty current_animating_property_;
DISALLOW_COPY_AND_ASSIGN(ScrollbarAnimationControllerThinning);
};
« no previous file with comments | « cc/input/scrollbar_animation_controller_linear_fade.h ('k') | cc/input/scrollbar_animation_controller_thinning.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698