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

Side by Side Diff: chrome/browser/ui/views/location_bar/bubble_icon_view.cc

Issue 2042073002: Centered flood fill style ink drop ripples on mouse/touch points. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renamed LocatedEvent::AsLocatedIfLocatedEvent() as FromIfValid(). 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "chrome/browser/ui/views/location_bar/bubble_icon_view.h" 5 #include "chrome/browser/ui/views/location_bar/bubble_icon_view.h"
6 6
7 #include "chrome/browser/command_updater.h" 7 #include "chrome/browser/command_updater.h"
8 #include "ui/accessibility/ax_view_state.h" 8 #include "ui/accessibility/ax_view_state.h"
9 #include "ui/base/material_design/material_design_controller.h" 9 #include "ui/base/material_design/material_design_controller.h"
10 #include "ui/events/event.h" 10 #include "ui/events/event.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 68
69 void BubbleIconView::Layout() { 69 void BubbleIconView::Layout() {
70 View::Layout(); 70 View::Layout();
71 image_->SetBoundsRect(GetLocalBounds()); 71 image_->SetBoundsRect(GetLocalBounds());
72 } 72 }
73 73
74 bool BubbleIconView::OnMousePressed(const ui::MouseEvent& event) { 74 bool BubbleIconView::OnMousePressed(const ui::MouseEvent& event) {
75 // If the bubble is showing then don't reshow it when the mouse is released. 75 // If the bubble is showing then don't reshow it when the mouse is released.
76 suppress_mouse_released_action_ = IsBubbleShowing(); 76 suppress_mouse_released_action_ = IsBubbleShowing();
77 if (!suppress_mouse_released_action_ && event.IsOnlyLeftMouseButton()) 77 if (!suppress_mouse_released_action_ && event.IsOnlyLeftMouseButton())
78 AnimateInkDrop(views::InkDropState::ACTION_PENDING); 78 AnimateInkDrop(views::InkDropState::ACTION_PENDING, &event);
79 79
80 // We want to show the bubble on mouse release; that is the standard behavior 80 // We want to show the bubble on mouse release; that is the standard behavior
81 // for buttons. 81 // for buttons.
82 return true; 82 return true;
83 } 83 }
84 84
85 void BubbleIconView::OnMouseReleased(const ui::MouseEvent& event) { 85 void BubbleIconView::OnMouseReleased(const ui::MouseEvent& event) {
86 // If this is the second click on this view then the bubble was showing on the 86 // If this is the second click on this view then the bubble was showing on the
87 // mouse pressed event and is hidden now. Prevent the bubble from reshowing by 87 // mouse pressed event and is hidden now. Prevent the bubble from reshowing by
88 // doing nothing here. 88 // doing nothing here.
89 if (suppress_mouse_released_action_) { 89 if (suppress_mouse_released_action_) {
90 suppress_mouse_released_action_ = false; 90 suppress_mouse_released_action_ = false;
91 OnPressed(false); 91 OnPressed(false);
92 return; 92 return;
93 } 93 }
94 if (!event.IsLeftMouseButton()) 94 if (!event.IsLeftMouseButton())
95 return; 95 return;
96 96
97 const bool activated = HitTestPoint(event.location()); 97 const bool activated = HitTestPoint(event.location());
98 AnimateInkDrop(activated ? views::InkDropState::ACTIVATED 98 AnimateInkDrop(
99 : views::InkDropState::HIDDEN); 99 activated ? views::InkDropState::ACTIVATED : views::InkDropState::HIDDEN,
100 &event);
100 if (activated) 101 if (activated)
101 ExecuteCommand(EXECUTE_SOURCE_MOUSE); 102 ExecuteCommand(EXECUTE_SOURCE_MOUSE);
102 OnPressed(activated); 103 OnPressed(activated);
103 } 104 }
104 105
105 bool BubbleIconView::OnKeyPressed(const ui::KeyEvent& event) { 106 bool BubbleIconView::OnKeyPressed(const ui::KeyEvent& event) {
106 if (event.key_code() != ui::VKEY_RETURN && event.key_code() != ui::VKEY_SPACE) 107 if (event.key_code() != ui::VKEY_RETURN && event.key_code() != ui::VKEY_SPACE)
107 return false; 108 return false;
108 109
109 AnimateInkDrop(views::InkDropState::ACTIVATED); 110 AnimateInkDrop(views::InkDropState::ACTIVATED, nullptr /* &event */);
110 // As with CustomButton, return activates on key down and space activates on 111 // As with CustomButton, return activates on key down and space activates on
111 // key up. 112 // key up.
112 if (event.key_code() == ui::VKEY_RETURN) 113 if (event.key_code() == ui::VKEY_RETURN)
113 ExecuteCommand(EXECUTE_SOURCE_KEYBOARD); 114 ExecuteCommand(EXECUTE_SOURCE_KEYBOARD);
114 return true; 115 return true;
115 } 116 }
116 117
117 bool BubbleIconView::OnKeyReleased(const ui::KeyEvent& event) { 118 bool BubbleIconView::OnKeyReleased(const ui::KeyEvent& event) {
118 if (event.key_code() != ui::VKEY_SPACE) 119 if (event.key_code() != ui::VKEY_SPACE)
119 return false; 120 return false;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 return color_utils::DeriveDefaultIconColor(GetNativeTheme()->GetSystemColor( 155 return color_utils::DeriveDefaultIconColor(GetNativeTheme()->GetSystemColor(
155 ui::NativeTheme::kColorId_TextfieldDefaultColor)); 156 ui::NativeTheme::kColorId_TextfieldDefaultColor));
156 } 157 }
157 158
158 bool BubbleIconView::ShouldShowInkDropForFocus() const { 159 bool BubbleIconView::ShouldShowInkDropForFocus() const {
159 return true; 160 return true;
160 } 161 }
161 162
162 void BubbleIconView::OnGestureEvent(ui::GestureEvent* event) { 163 void BubbleIconView::OnGestureEvent(ui::GestureEvent* event) {
163 if (event->type() == ui::ET_GESTURE_TAP) { 164 if (event->type() == ui::ET_GESTURE_TAP) {
164 AnimateInkDrop(views::InkDropState::ACTIVATED); 165 AnimateInkDrop(views::InkDropState::ACTIVATED, event);
165 ExecuteCommand(EXECUTE_SOURCE_GESTURE); 166 ExecuteCommand(EXECUTE_SOURCE_GESTURE);
166 event->SetHandled(); 167 event->SetHandled();
167 } 168 }
168 } 169 }
169 170
170 void BubbleIconView::OnWidgetDestroying(views::Widget* widget) { 171 void BubbleIconView::OnWidgetDestroying(views::Widget* widget) {
171 widget->RemoveObserver(this); 172 widget->RemoveObserver(this);
172 } 173 }
173 174
174 void BubbleIconView::OnWidgetVisibilityChanged(views::Widget* widget, 175 void BubbleIconView::OnWidgetVisibilityChanged(views::Widget* widget,
175 bool visible) { 176 bool visible) {
176 // |widget| is a bubble that has just got shown / hidden. 177 // |widget| is a bubble that has just got shown / hidden.
177 if (!visible) 178 if (!visible)
178 AnimateInkDrop(views::InkDropState::DEACTIVATED); 179 AnimateInkDrop(views::InkDropState::DEACTIVATED, nullptr /* event */);
179 } 180 }
180 181
181 void BubbleIconView::ExecuteCommand(ExecuteSource source) { 182 void BubbleIconView::ExecuteCommand(ExecuteSource source) {
182 OnExecuting(source); 183 OnExecuting(source);
183 if (command_updater_) 184 if (command_updater_)
184 command_updater_->ExecuteCommand(command_id_); 185 command_updater_->ExecuteCommand(command_id_);
185 } 186 }
186 187
187 gfx::VectorIconId BubbleIconView::GetVectorIcon() const { 188 gfx::VectorIconId BubbleIconView::GetVectorIcon() const {
188 return gfx::VectorIconId::VECTOR_ICON_NONE; 189 return gfx::VectorIconId::VECTOR_ICON_NONE;
(...skipping 23 matching lines...) Expand all
212 image_->SetImage( 213 image_->SetImage(
213 gfx::CreateVectorIcon(GetVectorIcon(), icon_size, icon_color)); 214 gfx::CreateVectorIcon(GetVectorIcon(), icon_size, icon_color));
214 } 215 }
215 216
216 void BubbleIconView::SetActiveInternal(bool active) { 217 void BubbleIconView::SetActiveInternal(bool active) {
217 if (active_ == active) 218 if (active_ == active)
218 return; 219 return;
219 active_ = active; 220 active_ = active;
220 UpdateIcon(); 221 UpdateIcon();
221 } 222 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698