summaryrefslogtreecommitdiffstats
path: root/chromium/ui/events/ozone/evdev/event_converter_evdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/events/ozone/evdev/event_converter_evdev.h')
-rw-r--r--chromium/ui/events/ozone/evdev/event_converter_evdev.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/chromium/ui/events/ozone/evdev/event_converter_evdev.h b/chromium/ui/events/ozone/evdev/event_converter_evdev.h
new file mode 100644
index 00000000000..ebc36fcc5a2
--- /dev/null
+++ b/chromium/ui/events/ozone/evdev/event_converter_evdev.h
@@ -0,0 +1,46 @@
+// 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_OZONE_EVDEV_EVENT_CONVERTER_EVDEV_H_
+#define UI_EVENTS_OZONE_EVDEV_EVENT_CONVERTER_EVDEV_H_
+
+#include "base/basictypes.h"
+#include "base/bind.h"
+#include "base/memory/scoped_ptr.h"
+#include "ui/events/ozone/evdev/events_ozone_evdev_export.h"
+
+namespace ui {
+
+class Event;
+class EventModifiersEvdev;
+
+typedef base::Callback<void(Event*)> EventDispatchCallback;
+
+// Base class for device-specific evdev event conversion.
+class EVENTS_OZONE_EVDEV_EXPORT EventConverterEvdev {
+ public:
+ EventConverterEvdev();
+ explicit EventConverterEvdev(const EventDispatchCallback& callback);
+ virtual ~EventConverterEvdev();
+
+ // Start converting events.
+ virtual void Start() = 0;
+
+ // Stop converting events.
+ virtual void Stop() = 0;
+
+ protected:
+ // Dispatches an event using the dispatch-callback set using
+ // |SetDispatchCalback()|.
+ virtual void DispatchEventToCallback(ui::Event* event);
+
+ private:
+ EventDispatchCallback dispatch_callback_;
+
+ DISALLOW_COPY_AND_ASSIGN(EventConverterEvdev);
+};
+
+} // namespace ui
+
+#endif // UI_EVENTS_OZONE_EVDEV_EVENT_CONVERTER_EVDEV_H_