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

Unified Diff: ui/chromeos/touch_exploration_controller.h

Issue 330763007: Swipe Gestures for Accessibility (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gesture-vlogs
Patch Set: Added keyboard events and fixed nits Created 6 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 side-by-side diff with in-line comments
Download patch
Index: ui/chromeos/touch_exploration_controller.h
diff --git a/ui/chromeos/touch_exploration_controller.h b/ui/chromeos/touch_exploration_controller.h
index aad8d4c5654611fca9cc1e2a6ae0d563282f4bf0..b260b153ba3a7c9fa4c6d459263f4279754d115e 100644
--- a/ui/chromeos/touch_exploration_controller.h
+++ b/ui/chromeos/touch_exploration_controller.h
@@ -11,6 +11,7 @@
#include "ui/events/event.h"
#include "ui/events/event_rewriter.h"
#include "ui/events/gesture_detection/gesture_detector.h"
+#include "ui/events/gestures/gesture_provider_aura.h"
#include "ui/gfx/geometry/point.h"
namespace aura {
@@ -21,6 +22,8 @@ namespace ui {
class Event;
class EventHandler;
+class GestureEvent;
+class GestureProviderAura;
class TouchEvent;
// TouchExplorationController is used in tandem with "Spoken Feedback" to
dmazzoni 2014/06/23 18:37:26 Be sure to update this top comment to talk about g
@@ -79,7 +82,7 @@ class TouchEvent;
// The caller is expected to retain ownership of instances of this class and
// destroy them before |root_window| is destroyed.
class UI_CHROMEOS_EXPORT TouchExplorationController :
- public ui::EventRewriter {
+ public ui::EventRewriter, public ui::GestureProviderAuraClient {
public:
explicit TouchExplorationController(aura::Window* root_window);
virtual ~TouchExplorationController();
@@ -107,10 +110,13 @@ class UI_CHROMEOS_EXPORT TouchExplorationController :
const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event);
ui::EventRewriteStatus InTouchExploration(
const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event);
+ ui::EventRewriteStatus InGestureInProgress(
+ const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event);
ui::EventRewriteStatus InPassthroughMinusOne(
const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event);
ui::EventRewriteStatus InTouchExploreSecondPress(
const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event);
+
// This timer is started every time we get the first press event, and
// it fires after the double-click timeout elapses (300 ms by default).
// If the user taps and releases within 300 ms and doesn't press again,
@@ -120,6 +126,20 @@ class UI_CHROMEOS_EXPORT TouchExplorationController :
// Dispatch a new event outside of the event rewriting flow.
void DispatchEvent(ui::Event* event);
+ // Overridden from GestureProviderAuraClient.
+ //
+ // The gesture provider keeps track of all the touch events after
+ // the user moves fast enough to trigger a gesture. After the user
+ // completes their gesture, this method will decide what keyboard
+ // input their gesture corresponded to.
+ void OnGestureEvent(ui::GestureEvent* gesture) OVERRIDE;
+
+ void OnSwipeEvent(ui::GestureEvent* swipe_gesture);
+
+ // Dispatches the keyboard short cut Shift+Search+<arrow key>
+ // outside the event rewritting flow.
+ void DispatchShiftSearchKeyEvent(const ui::KeyboardCode direction);
+
scoped_ptr<ui::Event> CreateMouseMoveEvent(const gfx::PointF& location,
int flags);
@@ -155,6 +175,14 @@ class UI_CHROMEOS_EXPORT TouchExplorationController :
// mode until all fingers are lifted.
TOUCH_EXPLORATION,
+ // If the user moves their finger faster than the threshold velocity after a
+ // single tap, the touch events that follow will be translated into gesture
+ // events. If the user successfully completes a gesture within the grace
+ // period, the gesture will be collected and sent to the GestureClient.
+ // Otherwise, the collected gestures are discarded and the state changes to
+ // touch_exploration.
+ GESTURE_IN_PROGRESS,
+
// The user placed two or more fingers down within the grace period.
// We're now in passthrough mode until all fingers are lifted. Initially
// the first finger is ignored and other fingers are passed through
@@ -217,6 +245,9 @@ class UI_CHROMEOS_EXPORT TouchExplorationController :
// timeout and pixel slop constants.
ui::GestureDetector::Config gesture_detector_config_;
+ // Gesture Handler to interpret the touch events.
+ ui::GestureProviderAura gesture_provider_;
+
// The previous state entered.
State prev_state_;
« no previous file with comments | « no previous file | ui/chromeos/touch_exploration_controller.cc » ('j') | ui/chromeos/touch_exploration_controller.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698