OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_CHROMEOS_TOUCH_EXPLORATION_CONTROLLER_H_ | 5 #ifndef UI_CHROMEOS_TOUCH_EXPLORATION_CONTROLLER_H_ |
6 #define UI_CHROMEOS_TOUCH_EXPLORATION_CONTROLLER_H_ | 6 #define UI_CHROMEOS_TOUCH_EXPLORATION_CONTROLLER_H_ |
7 | 7 |
8 #include "base/time/tick_clock.h" | 8 #include "base/time/tick_clock.h" |
9 #include "base/timer/timer.h" | 9 #include "base/timer/timer.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 public: | 33 public: |
34 virtual ~TouchExplorationControllerDelegate() {} | 34 virtual ~TouchExplorationControllerDelegate() {} |
35 | 35 |
36 // This function should be called whenever the delegate wants to play a sound | 36 // This function should be called whenever the delegate wants to play a sound |
37 // when the volume adjusts. | 37 // when the volume adjusts. |
38 virtual void PlayVolumeAdjustSound() = 0; | 38 virtual void PlayVolumeAdjustSound() = 0; |
39 | 39 |
40 // Takes an int from 0.0 to 100.0 that indicates the percent the volume | 40 // Takes an int from 0.0 to 100.0 that indicates the percent the volume |
41 // should be set to. | 41 // should be set to. |
42 virtual void SetOutputLevel(int volume) = 0; | 42 virtual void SetOutputLevel(int volume) = 0; |
| 43 |
| 44 // Silences spoken feedback. |
| 45 virtual void SilenceSpokenFeedback() = 0; |
43 }; | 46 }; |
44 | 47 |
45 // TouchExplorationController is used in tandem with "Spoken Feedback" to | 48 // TouchExplorationController is used in tandem with "Spoken Feedback" to |
46 // make the touch UI accessible. Gestures performed in the middle of the screen | 49 // make the touch UI accessible. Gestures performed in the middle of the screen |
47 // are mapped to accessiblity key shortcuts while gestures performed on the edge | 50 // are mapped to accessiblity key shortcuts while gestures performed on the edge |
48 // of the screen can change settings. | 51 // of the screen can change settings. |
49 // | 52 // |
50 // ** Short version ** | 53 // ** Short version ** |
51 // | 54 // |
52 // At a high-level, single-finger events are used for accessibility - | 55 // At a high-level, single-finger events are used for accessibility - |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 ui::EventRewriteStatus InOneFingerPassthrough( | 179 ui::EventRewriteStatus InOneFingerPassthrough( |
177 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); | 180 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); |
178 ui::EventRewriteStatus InGestureInProgress( | 181 ui::EventRewriteStatus InGestureInProgress( |
179 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); | 182 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); |
180 ui::EventRewriteStatus InTouchExploreSecondPress( | 183 ui::EventRewriteStatus InTouchExploreSecondPress( |
181 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); | 184 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); |
182 ui::EventRewriteStatus InWaitForOneFinger( | 185 ui::EventRewriteStatus InWaitForOneFinger( |
183 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); | 186 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); |
184 ui::EventRewriteStatus InSlideGesture( | 187 ui::EventRewriteStatus InSlideGesture( |
185 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); | 188 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); |
| 189 ui::EventRewriteStatus InTwoFingerTap( |
| 190 const ui::TouchEvent& event, scoped_ptr<ui::Event>* rewritten_event); |
186 | 191 |
187 // Returns the current time of the tick clock. | 192 // Returns the current time of the tick clock. |
188 base::TimeDelta Now(); | 193 base::TimeDelta Now(); |
189 | 194 |
190 // This timer is started every time we get the first press event, and | 195 // This timer is started every time we get the first press event, and |
191 // it fires after the double-click timeout elapses (300 ms by default). | 196 // it fires after the double-click timeout elapses (300 ms by default). |
192 // If the user taps and releases within 300 ms and doesn't press again, | 197 // If the user taps and releases within 300 ms and doesn't press again, |
193 // we treat that as a single mouse move (touch exploration) event. | 198 // we treat that as a single mouse move (touch exploration) event. |
194 void StartTapTimer(); | 199 void StartTapTimer(); |
195 void OnTapTimerFired(); | 200 void OnTapTimerFired(); |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 // passthrough, touch exploration, and gestures, they must release | 312 // passthrough, touch exploration, and gestures, they must release |
308 // all fingers except before completing any more actions. This state is | 313 // all fingers except before completing any more actions. This state is |
309 // generally useful for developing new features, because it creates a | 314 // generally useful for developing new features, because it creates a |
310 // simple way to handle a dead end in user flow. | 315 // simple way to handle a dead end in user flow. |
311 WAIT_FOR_ONE_FINGER, | 316 WAIT_FOR_ONE_FINGER, |
312 | 317 |
313 // If the user is within the given bounds from an edge of the screen, not | 318 // If the user is within the given bounds from an edge of the screen, not |
314 // including corners, then the resulting movements will be interpreted as | 319 // including corners, then the resulting movements will be interpreted as |
315 // slide gestures. | 320 // slide gestures. |
316 SLIDE_GESTURE, | 321 SLIDE_GESTURE, |
| 322 |
| 323 // If the user makes a two finger tap, silence spoken feedback. |
| 324 TWO_FINGER_TAP, |
317 }; | 325 }; |
318 | 326 |
319 enum ScreenLocation { | 327 enum ScreenLocation { |
320 // Hot "edges" of the screen are each represented by a respective bit. | 328 // Hot "edges" of the screen are each represented by a respective bit. |
321 NO_EDGE = 0, | 329 NO_EDGE = 0, |
322 RIGHT_EDGE = 1 << 0, | 330 RIGHT_EDGE = 1 << 0, |
323 TOP_EDGE = 1 << 1, | 331 TOP_EDGE = 1 << 1, |
324 LEFT_EDGE = 1 << 2, | 332 LEFT_EDGE = 1 << 2, |
325 BOTTOM_EDGE = 1 << 3, | 333 BOTTOM_EDGE = 1 << 3, |
326 }; | 334 }; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 // When touch_exploration_controller gets time relative to real time during | 401 // When touch_exploration_controller gets time relative to real time during |
394 // testing, this clock is set to the simulated clock and used. | 402 // testing, this clock is set to the simulated clock and used. |
395 base::TickClock* tick_clock_; | 403 base::TickClock* tick_clock_; |
396 | 404 |
397 DISALLOW_COPY_AND_ASSIGN(TouchExplorationController); | 405 DISALLOW_COPY_AND_ASSIGN(TouchExplorationController); |
398 }; | 406 }; |
399 | 407 |
400 } // namespace ui | 408 } // namespace ui |
401 | 409 |
402 #endif // UI_CHROMEOS_TOUCH_EXPLORATION_CONTROLLER_H_ | 410 #endif // UI_CHROMEOS_TOUCH_EXPLORATION_CONTROLLER_H_ |
OLD | NEW |