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

Unified Diff: ash/autoclick/autoclick_controller.cc

Issue 2016073004: Show a visual indicator for the progress of auto-click. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
Index: ash/autoclick/autoclick_controller.cc
diff --git a/ash/autoclick/autoclick_controller.cc b/ash/autoclick/autoclick_controller.cc
index 47846dcaa5aeea29c7d3746c709a2f1f3662f220..45b89073aaa11489e3650eeba1feba56e70f1175 100644
--- a/ash/autoclick/autoclick_controller.cc
+++ b/ash/autoclick/autoclick_controller.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "ash/autoclick/autoclick_controller.h"
+#include "ash/autoclick/autoclick_ring_handler.h"
#include "ash/shell.h"
#include "ash/wm/aura/wm_window_aura.h"
@@ -63,6 +64,9 @@ class AutoclickControllerImpl : public AutoclickController,
void OnGestureEvent(ui::GestureEvent* event) override;
void OnScrollEvent(ui::ScrollEvent* event) override;
+ void StartRingDisplay(ui::LocatedEvent* event);
+ void StopRingDisplay(ui::LocatedEvent* event);
+
void InitClickTimer();
void DoAutoclick();
@@ -71,6 +75,7 @@ class AutoclickControllerImpl : public AutoclickController,
int delay_ms_;
int mouse_event_flags_;
std::unique_ptr<base::Timer> autoclick_timer_;
+ std::unique_ptr<LongPressAutoclickRingHandler> autoclick_ring_display_;
// The position in screen coordinates used to determine
// the distance the mouse has moved.
gfx::Point anchor_location_;
@@ -85,6 +90,7 @@ AutoclickControllerImpl::AutoclickControllerImpl()
mouse_event_flags_(ui::EF_NONE),
anchor_location_(-kMovementThreshold, -kMovementThreshold) {
InitClickTimer();
+ autoclick_ring_display_.reset(new LongPressAutoclickRingHandler);
jdufault 2016/05/31 19:06:15 Use trailing parens with constructors: new LongPre
sammiequon 2016/06/03 21:34:31 Done.
}
AutoclickControllerImpl::~AutoclickControllerImpl() {
@@ -116,6 +122,14 @@ int AutoclickControllerImpl::GetAutoclickDelay() const {
return delay_ms_;
}
+void AutoclickControllerImpl::StartRingDisplay(ui::LocatedEvent* event) {
+ autoclick_ring_display_->ProcessEvent(event, delay_ms_, true);
+}
+
+void AutoclickControllerImpl::StopRingDisplay(ui::LocatedEvent* event) {
+ autoclick_ring_display_->ProcessEvent(event, delay_ms_, false);
+}
+
void AutoclickControllerImpl::InitClickTimer() {
autoclick_timer_.reset(new base::Timer(
FROM_HERE,
@@ -144,12 +158,15 @@ void AutoclickControllerImpl::OnMouseEvent(ui::MouseEvent* event) {
if (delta.LengthSquared() >= kMovementThreshold * kMovementThreshold) {
anchor_location_ = mouse_location;
autoclick_timer_->Reset();
+ StartRingDisplay(event);
}
} else if (event->type() == ui::ET_MOUSE_PRESSED) {
autoclick_timer_->Stop();
+ StopRingDisplay(event);
} else if (event->type() == ui::ET_MOUSEWHEEL &&
autoclick_timer_->IsRunning()) {
autoclick_timer_->Reset();
+ StartRingDisplay(event);
}
}
@@ -160,20 +177,25 @@ void AutoclickControllerImpl::OnKeyEvent(ui::KeyEvent* event) {
int new_modifiers = event->flags() & modifier_mask;
mouse_event_flags_ = (mouse_event_flags_ & ~modifier_mask) | new_modifiers;
- if (!IsModifierKey(event->key_code()))
+ if (!IsModifierKey(event->key_code())) {
autoclick_timer_->Stop();
+ StopRingDisplay(NULL);
jdufault 2016/05/31 19:06:15 nit: nullptr
sammiequon 2016/06/03 21:34:30 Done.
+ }
}
void AutoclickControllerImpl::OnTouchEvent(ui::TouchEvent* event) {
autoclick_timer_->Stop();
+ StopRingDisplay(event);
}
void AutoclickControllerImpl::OnGestureEvent(ui::GestureEvent* event) {
autoclick_timer_->Stop();
+ StopRingDisplay(event);
}
void AutoclickControllerImpl::OnScrollEvent(ui::ScrollEvent* event) {
autoclick_timer_->Stop();
+ StopRingDisplay(event);
}
void AutoclickControllerImpl::DoAutoclick() {

Powered by Google App Engine
This is Rietveld 408576698