1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/macros.h"
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/events/gestures/gesture_recognizer.h"
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace ui {
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace {
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Stub implementation of GestureRecognizer for Mac. Currently only serves to
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// provide a no-op implementation of TransferEventsTo().
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class GestureRecognizerImplMac : public GestureRecognizer {
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public:
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  GestureRecognizerImplMac() {}
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual ~GestureRecognizerImplMac() {}
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private:
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual bool ProcessTouchEventPreDispatch(
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      const TouchEvent& event,
226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      GestureConsumer* consumer) OVERRIDE {
236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    return false;
246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  }
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual Gestures* ProcessTouchEventPostDispatch(
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      const TouchEvent& event,
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      ui::EventResult result,
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      GestureConsumer* consumer) OVERRIDE {
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return NULL;
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  virtual Gestures* ProcessTouchEventOnAsyncAck(
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      const TouchEvent& event,
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      ui::EventResult result,
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      GestureConsumer* consumer) OVERRIDE {
366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    return NULL;
376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  };
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual bool CleanupStateForConsumer(GestureConsumer* consumer) OVERRIDE {
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return false;
40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual GestureConsumer* GetTouchLockedTarget(
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      const TouchEvent& event) OVERRIDE {
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return NULL;
44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual GestureConsumer* GetTargetForGestureEvent(
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      const GestureEvent& event) OVERRIDE {
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return NULL;
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual GestureConsumer* GetTargetForLocation(const gfx::PointF& location,
50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                                int source_device_id) OVERRIDE {
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return NULL;
52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void TransferEventsTo(GestureConsumer* current_consumer,
54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                GestureConsumer* new_consumer) OVERRIDE {}
55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual bool GetLastTouchPointForTarget(GestureConsumer* consumer,
56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                          gfx::PointF* point) OVERRIDE {
57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return false;
58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual bool CancelActiveTouches(GestureConsumer* consumer) OVERRIDE {
60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    return false;
61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  }
62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void AddGestureEventHelper(GestureEventHelper* helper) OVERRIDE {}
63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void RemoveGestureEventHelper(GestureEventHelper* helper) OVERRIDE {}
64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(GestureRecognizerImplMac);
66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace
69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)GestureRecognizer* GestureRecognizer::Get() {
72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  CR_DEFINE_STATIC_LOCAL(GestureRecognizerImplMac, instance, ());
73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return &instance;
74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
75cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace ui
77