diff options
Diffstat (limited to 'chromium/ui/events/gestures/gesture_provider_aura.h')
-rw-r--r-- | chromium/ui/events/gestures/gesture_provider_aura.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/chromium/ui/events/gestures/gesture_provider_aura.h b/chromium/ui/events/gestures/gesture_provider_aura.h new file mode 100644 index 00000000000..ff7befce15e --- /dev/null +++ b/chromium/ui/events/gestures/gesture_provider_aura.h @@ -0,0 +1,59 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_GESTURE_DETECTION_UI_GESTURE_PROVIDER_H_ +#define UI_EVENTS_GESTURE_DETECTION_UI_GESTURE_PROVIDER_H_ + +#include "base/basictypes.h" +#include "ui/events/event.h" +#include "ui/events/events_export.h" +#include "ui/events/gesture_detection/filtered_gesture_provider.h" +#include "ui/events/gesture_detection/gesture_event_data_packet.h" +#include "ui/events/gesture_detection/touch_disposition_gesture_filter.h" +#include "ui/events/gestures/motion_event_aura.h" + +namespace ui { + +class EVENTS_EXPORT GestureProviderAuraClient { + public: + virtual ~GestureProviderAuraClient() {} + virtual void OnGestureEvent(GestureEvent* event) = 0; +}; + +// Provides gesture detection and dispatch given a sequence of touch events +// and touch event acks. +class EVENTS_EXPORT GestureProviderAura : public GestureProviderClient { + public: + GestureProviderAura(GestureProviderAuraClient* client); + virtual ~GestureProviderAura(); + + bool OnTouchEvent(const TouchEvent& event); + void OnTouchEventAck(bool event_consumed); + const MotionEventAura& pointer_state() { return pointer_state_; } + ScopedVector<GestureEvent>* GetAndResetPendingGestures(); + + // GestureProviderClient implementation + virtual void OnGestureEvent(const GestureEventData& gesture) OVERRIDE; + + private: + bool IsConsideredDoubleTap(const GestureEventData& previous_tap, + const GestureEventData& current_tap) const; + + scoped_ptr<GestureEventData> previous_tap_; + + GestureProviderAuraClient* client_; + MotionEventAura pointer_state_; + FilteredGestureProvider filtered_gesture_provider_; + + int last_touch_event_flags_; + ui::LatencyInfo last_touch_event_latency_info_; + bool handling_event_; + ScopedVector<GestureEvent> pending_gestures_; + + DISALLOW_COPY_AND_ASSIGN(GestureProviderAura); +}; + +} // namespace ui + +#endif // UI_EVENTS_GESTURE_DETECTION_UI_GESTURE_PROVIDER_H_ |