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

Side by Side Diff: ui/views/animation/ink_drop_impl.h

Issue 2001843002: Use ink drop hover for focus states on toolbar buttons and location (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format Created 4 years, 6 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 UI_VIEWS_ANIMATION_INK_DROP_IMPL_H_ 5 #ifndef UI_VIEWS_ANIMATION_INK_DROP_IMPL_H_
6 #define UI_VIEWS_ANIMATION_INK_DROP_IMPL_H_ 6 #define UI_VIEWS_ANIMATION_INK_DROP_IMPL_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 27 matching lines...) Expand all
38 // |ink_drop_host|. 38 // |ink_drop_host|.
39 explicit InkDropImpl(InkDropHost* ink_drop_host); 39 explicit InkDropImpl(InkDropHost* ink_drop_host);
40 ~InkDropImpl() override; 40 ~InkDropImpl() override;
41 41
42 // InkDrop: 42 // InkDrop:
43 InkDropState GetTargetInkDropState() const override; 43 InkDropState GetTargetInkDropState() const override;
44 bool IsVisible() const override; 44 bool IsVisible() const override;
45 void AnimateToState(InkDropState ink_drop_state) override; 45 void AnimateToState(InkDropState ink_drop_state) override;
46 void SnapToActivated() override; 46 void SnapToActivated() override;
47 void SetHovered(bool is_hovered) override; 47 void SetHovered(bool is_hovered) override;
48 void SetFocused(bool is_focused) override;
48 49
49 private: 50 private:
50 friend class test::InkDropImplTestApi; 51 friend class test::InkDropImplTestApi;
51 52
52 // Destroys |ink_drop_ripple_| if it's targeted to the HIDDEN state. 53 // Destroys |ink_drop_ripple_| if it's targeted to the HIDDEN state.
53 void DestroyHiddenTargetedAnimations(); 54 void DestroyHiddenTargetedAnimations();
54 55
55 // Creates a new InkDropRipple and sets it to |ink_drop_ripple_|. If 56 // Creates a new InkDropRipple and sets it to |ink_drop_ripple_|. If
56 // |ink_drop_ripple_| wasn't null then it will be destroyed using 57 // |ink_drop_ripple_| wasn't null then it will be destroyed using
57 // DestroyInkDropRipple(). 58 // DestroyInkDropRipple().
(...skipping 24 matching lines...) Expand all
82 // views::InkDropRippleObserver: 83 // views::InkDropRippleObserver:
83 void AnimationStarted(InkDropState ink_drop_state) override; 84 void AnimationStarted(InkDropState ink_drop_state) override;
84 void AnimationEnded(InkDropState ink_drop_state, 85 void AnimationEnded(InkDropState ink_drop_state,
85 InkDropAnimationEndedReason reason) override; 86 InkDropAnimationEndedReason reason) override;
86 87
87 // views::InkDropHoverObserver: 88 // views::InkDropHoverObserver:
88 void AnimationStarted(InkDropHover::AnimationType animation_type) override; 89 void AnimationStarted(InkDropHover::AnimationType animation_type) override;
89 void AnimationEnded(InkDropHover::AnimationType animation_type, 90 void AnimationEnded(InkDropHover::AnimationType animation_type,
90 InkDropAnimationEndedReason reason) override; 91 InkDropAnimationEndedReason reason) override;
91 92
92 // Enables or disables the hover state based on |is_hovered| and if an 93 // Enables or disables the hover state based on |should_highlight| and if an
93 // animation is triggered it will be scheduled to have the given 94 // animation is triggered it will be scheduled to have the given
94 // |animation_duration|. If |explode| is true the hover will expand as it 95 // |animation_duration|. If |explode| is true the hover will expand as it
95 // fades out. |explode| is ignored when |is_hovered| is true. 96 // fades out. |explode| is ignored when |should_higlight| is true.
96 void SetHoveredInternal(bool is_hovered, 97 void SetHighlight(bool should_highlight,
97 base::TimeDelta animation_duration, 98 base::TimeDelta animation_duration,
98 bool explode); 99 bool explode);
100
101 // Returns true if this ink drop is showing an effect for hovered or focused.
bruthig 2016/05/26 00:40:52 Can you rephrase this to be clear that this is the
Evan Stade 2016/05/26 18:45:01 Done.
102 bool ShouldHighlight() const;
99 103
100 // Starts the |hover_after_ripple_timer_| timer. This will stop the current 104 // Starts the |hover_after_ripple_timer_| timer. This will stop the current
101 // |hover_after_ripple_timer_| instance if it exists. 105 // |hover_after_ripple_timer_| instance if it exists.
102 void StartHoverAfterRippleTimer(); 106 void StartHoverAfterRippleTimer();
103 107
104 // Stops and destroys the current |hover_after_ripple_timer_| instance. 108 // Stops and destroys the current |hover_after_ripple_timer_| instance.
105 void StopHoverAfterRippleTimer(); 109 void StopHoverAfterRippleTimer();
106 110
107 // Callback for when the |hover_after_ripple_timer_| fires. 111 // Callback for when the |hover_after_ripple_timer_| fires.
108 void HoverAfterRippleTimerFired(); 112 void HoverAfterRippleTimerFired();
(...skipping 10 matching lines...) Expand all
119 // True when the |root_layer_| has been added to the |ink_drop_host_|. 123 // True when the |root_layer_| has been added to the |ink_drop_host_|.
120 bool root_layer_added_to_host_; 124 bool root_layer_added_to_host_;
121 125
122 // The current InkDropHover. Lazily created using CreateInkDropHover(); 126 // The current InkDropHover. Lazily created using CreateInkDropHover();
123 std::unique_ptr<InkDropHover> hover_; 127 std::unique_ptr<InkDropHover> hover_;
124 128
125 // Tracks the logical hovered state of |this| as manipulated by the public 129 // Tracks the logical hovered state of |this| as manipulated by the public
126 // SetHovered() function. 130 // SetHovered() function.
127 bool is_hovered_; 131 bool is_hovered_;
128 132
133 // Tracks the logical focused state of |this| as manipulated by the public
134 // SetFocused() function.
135 bool is_focused_;
136
129 // The current InkDropRipple. Created on demand using CreateInkDropRipple(). 137 // The current InkDropRipple. Created on demand using CreateInkDropRipple().
130 std::unique_ptr<InkDropRipple> ink_drop_ripple_; 138 std::unique_ptr<InkDropRipple> ink_drop_ripple_;
131 139
132 // The timer used to delay the hover fade in after an ink drop ripple 140 // The timer used to delay the hover fade in after an ink drop ripple
133 // animation. 141 // animation.
134 std::unique_ptr<base::Timer> hover_after_ripple_timer_; 142 std::unique_ptr<base::Timer> hover_after_ripple_timer_;
135 143
136 DISALLOW_COPY_AND_ASSIGN(InkDropImpl); 144 DISALLOW_COPY_AND_ASSIGN(InkDropImpl);
137 }; 145 };
138 146
139 } // namespace views 147 } // namespace views
140 148
141 #endif // UI_VIEWS_ANIMATION_INK_DROP_IMPL_H_ 149 #endif // UI_VIEWS_ANIMATION_INK_DROP_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698