1 // Copyright 2013 Intel Corporation. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef OZONE_UI_EVENTS_EVENT_CONVERTER_IN_PROCESS_H_
6 #define OZONE_UI_EVENTS_EVENT_CONVERTER_IN_PROCESS_H_
10 #include "base/memory/scoped_ptr.h"
11 #include "ozone/ui/events/event_converter_ozone_wayland.h"
12 #include "ozone/ui/events/keyboard_code_conversion_ozone.h"
13 #include "ozone/ui/events/keyboard_engine_xkb.h"
14 #include "ui/events/event.h"
15 #include "ui/events/platform/platform_event_source.h"
19 class EventConverterInProcess : public ui::EventConverterOzoneWayland,
20 public ui::PlatformEventSource {
22 EventConverterInProcess();
23 virtual ~EventConverterInProcess();
25 virtual void MotionNotify(float x, float y) OVERRIDE;
26 virtual void ButtonNotify(unsigned handle,
31 virtual void AxisNotify(float x,
34 int yoffset) OVERRIDE;
35 virtual void PointerEnter(unsigned handle, float x, float y) OVERRIDE;
36 virtual void PointerLeave(unsigned handle, float x, float y) OVERRIDE;
37 virtual void KeyNotify(ui::EventType type,
38 unsigned code) override;
39 virtual void VirtualKeyNotify(ui::EventType type,
41 uint32_t modifiers) override;
42 virtual void KeyModifiers(uint32_t mods_depressed,
43 uint32_t mods_latched,
45 uint32_t group) override;
46 virtual void TouchNotify(ui::EventType type,
50 uint32_t time_stamp) OVERRIDE;
51 virtual void CloseWidget(unsigned handle) OVERRIDE;
53 virtual void OutputSizeChanged(unsigned width, unsigned height) OVERRIDE;
54 virtual void WindowResized(unsigned windowhandle,
56 unsigned height) OVERRIDE;
57 virtual void WindowUnminimized(unsigned windowhandle) OVERRIDE;
59 virtual void Commit(unsigned handle, const std::string& text) OVERRIDE;
60 virtual void PreeditChanged(unsigned handle, const std::string& text,
61 const std::string& commit) override;
62 virtual void PreeditEnd() override;
63 virtual void PreeditStart() override;
64 virtual void InitializeXKB(base::SharedMemoryHandle fd,
65 uint32_t size) override;
67 virtual void SetWindowChangeObserver(
68 ui::WindowChangeObserver* observer) OVERRIDE;
69 virtual void SetOutputChangeObserver(
70 ui::OutputChangeObserver* observer) OVERRIDE;
73 // PlatformEventSource:
74 virtual void OnDispatcherListChanged() OVERRIDE;
75 static void NotifyMotion(EventConverterInProcess* data,
78 static void NotifyButtonPress(EventConverterInProcess* data,
84 static void NotifyAxis(EventConverterInProcess* data,
89 static void NotifyPointerEnter(EventConverterInProcess* data,
93 static void NotifyPointerLeave(EventConverterInProcess* data,
97 static void NotifyKeyEvent(EventConverterInProcess* data,
99 ui::KeyboardCode code,
100 uint16 CharacterCodeFromNativeKey,
102 static void NotifyTouchEvent(EventConverterInProcess* data,
107 uint32_t time_stamp);
108 static void NotifyCloseWidget(EventConverterInProcess* data,
110 static void NotifyOutputSizeChanged(EventConverterInProcess* data,
113 static void NotifyWindowResized(EventConverterInProcess* data,
117 static void NotifyWindowUnminimized(EventConverterInProcess* data,
119 static void NotifyCommit(EventConverterInProcess* data, unsigned handle,
120 const std::string& text);
121 static void NotifyPreeditChanged(EventConverterInProcess* data,
123 const std::string& text,
124 const std::string& commit);
125 static void NotifyPreeditEnd(EventConverterInProcess* data);
126 static void NotifyPreeditStart(EventConverterInProcess* data);
128 ui::WindowChangeObserver* observer_;
129 ui::OutputChangeObserver* output_observer_;
130 ui::KeyboardEngineXKB* backend_;
131 base::Callback<void(void*)> dispatch_callback_; // NOLINT(readability/
133 DISALLOW_COPY_AND_ASSIGN(EventConverterInProcess);
138 #endif // OZONE_UI_EVENTS_EVENT_CONVERTER_IN_PROCESS_H_