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

Side by Side Diff: ui/base/gestures/gesture_recognizer_impl.h

Issue 11188012: gesture recognizer: Remove the touch-event queue. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tot-merge Created 8 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « ui/base/gestures/gesture_recognizer.h ('k') | ui/base/gestures/gesture_recognizer_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_BASE_GESTURES_GESTURE_RECOGNIZER_IMPL_H_ 5 #ifndef UI_BASE_GESTURES_GESTURE_RECOGNIZER_IMPL_H_
6 #define UI_BASE_GESTURES_GESTURE_RECOGNIZER_IMPL_H_ 6 #define UI_BASE_GESTURES_GESTURE_RECOGNIZER_IMPL_H_
7 7
8 #include <map> 8 #include <map>
9 #include <queue>
10 #include <vector> 9 #include <vector>
11 10
12 #include "base/memory/linked_ptr.h" 11 #include "base/memory/linked_ptr.h"
13 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
14 #include "ui/base/events/event_constants.h" 13 #include "ui/base/events/event_constants.h"
15 #include "ui/base/gestures/gesture_recognizer.h" 14 #include "ui/base/gestures/gesture_recognizer.h"
16 #include "ui/base/ui_export.h" 15 #include "ui/base/ui_export.h"
17 #include "ui/gfx/point.h" 16 #include "ui/gfx/point.h"
18 17
19 namespace ui { 18 namespace ui {
(...skipping 22 matching lines...) Expand all
42 gfx::Point* point) OVERRIDE; 41 gfx::Point* point) OVERRIDE;
43 42
44 protected: 43 protected:
45 virtual GestureSequence* CreateSequence(GestureEventHelper* helper); 44 virtual GestureSequence* CreateSequence(GestureEventHelper* helper);
46 virtual GestureSequence* GetGestureSequenceForConsumer(GestureConsumer* c); 45 virtual GestureSequence* GetGestureSequenceForConsumer(GestureConsumer* c);
47 46
48 private: 47 private:
49 // Sets up the target consumer for gestures based on the touch-event. 48 // Sets up the target consumer for gestures based on the touch-event.
50 void SetupTargets(const TouchEvent& event, GestureConsumer* consumer); 49 void SetupTargets(const TouchEvent& event, GestureConsumer* consumer);
51 50
52 // Processes the next queued touch-event (and discards the touch-event). The
53 // called must take ownership of the returned gestures and free them when they
54 // are not needed anymore.
55 Gestures* AdvanceTouchQueueByOne(GestureConsumer* consumer,
56 ui::EventResult result);
57
58 // Overridden from GestureRecognizer 51 // Overridden from GestureRecognizer
59 virtual Gestures* ProcessTouchEventForGesture( 52 virtual Gestures* ProcessTouchEventForGesture(
60 const TouchEvent& event, 53 const TouchEvent& event,
61 ui::EventResult result, 54 ui::EventResult result,
62 GestureConsumer* target) OVERRIDE; 55 GestureConsumer* target) OVERRIDE;
63 virtual void QueueTouchEventForGesture(GestureConsumer* consumer, 56 virtual void CleanupStateForConsumer(GestureConsumer* consumer) OVERRIDE;
64 const TouchEvent& event) OVERRIDE;
65 virtual Gestures* AdvanceTouchQueue(GestureConsumer* consumer,
66 bool processed) OVERRIDE;
67 virtual void FlushTouchQueue(GestureConsumer* consumer) OVERRIDE;
68 57
69 typedef std::queue<TouchEvent*> TouchEventQueue;
70 std::map<GestureConsumer*, TouchEventQueue*> event_queue_;
71 std::map<GestureConsumer*, GestureSequence*> consumer_sequence_; 58 std::map<GestureConsumer*, GestureSequence*> consumer_sequence_;
72 59
73 // Both |touch_id_target_| and |touch_id_target_for_gestures_| map a touch-id 60 // Both |touch_id_target_| and |touch_id_target_for_gestures_| map a touch-id
74 // to its target window. touch-ids are removed from |touch_id_target_| on 61 // to its target window. touch-ids are removed from |touch_id_target_| on
75 // ET_TOUCH_RELEASE and ET_TOUCH_CANCEL. |touch_id_target_for_gestures_| are 62 // ET_TOUCH_RELEASE and ET_TOUCH_CANCEL. |touch_id_target_for_gestures_| are
76 // removed in FlushTouchQueue(). 63 // removed in ConsumerDestroyed().
77 TouchIdToConsumerMap touch_id_target_; 64 TouchIdToConsumerMap touch_id_target_;
78 TouchIdToConsumerMap touch_id_target_for_gestures_; 65 TouchIdToConsumerMap touch_id_target_for_gestures_;
79 66
80 // Touches cancelled by touch capture are routed to the 67 // Touches cancelled by touch capture are routed to the
81 // gesture_consumer_ignorer_. 68 // gesture_consumer_ignorer_.
82 scoped_ptr<GestureConsumer> gesture_consumer_ignorer_; 69 scoped_ptr<GestureConsumer> gesture_consumer_ignorer_;
83 GestureEventHelper* helper_; 70 GestureEventHelper* helper_;
84 71
85 DISALLOW_COPY_AND_ASSIGN(GestureRecognizerImpl); 72 DISALLOW_COPY_AND_ASSIGN(GestureRecognizerImpl);
86 }; 73 };
87 74
88 } // namespace ui 75 } // namespace ui
89 76
90 #endif // UI_BASE_GESTURES_GESTURE_RECOGNIZER_IMPL_H_ 77 #endif // UI_BASE_GESTURES_GESTURE_RECOGNIZER_IMPL_H_
OLDNEW
« no previous file with comments | « ui/base/gestures/gesture_recognizer.h ('k') | ui/base/gestures/gesture_recognizer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698