| Index: mojo/services/public/cpp/input_events/lib/input_events_type_converters.cc
|
| diff --git a/mojo/services/public/cpp/input_events/lib/input_events_type_converters.cc b/mojo/services/public/cpp/input_events/lib/input_events_type_converters.cc
|
| index dbd8f70848ffc28ea54efbcbafbf87b4039f1339..cff22d45f3d342ba704be09816f4c3985f7346f9 100644
|
| --- a/mojo/services/public/cpp/input_events/lib/input_events_type_converters.cc
|
| +++ b/mojo/services/public/cpp/input_events/lib/input_events_type_converters.cc
|
| @@ -5,16 +5,95 @@
|
| #include "mojo/services/public/cpp/input_events/input_events_type_converters.h"
|
|
|
| #include "mojo/services/public/cpp/geometry/geometry_type_converters.h"
|
| +#include "mojo/services/public/interfaces/input_events/input_events.mojom.h"
|
| #include "ui/events/keycodes/keyboard_codes.h"
|
|
|
| namespace mojo {
|
|
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_NONE) ==
|
| + static_cast<int32>(ui::EF_NONE),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_CAPS_LOCK_DOWN) ==
|
| + static_cast<int32>(ui::EF_CAPS_LOCK_DOWN),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_SHIFT_DOWN) ==
|
| + static_cast<int32>(ui::EF_SHIFT_DOWN),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_CONTROL_DOWN) ==
|
| + static_cast<int32>(ui::EF_CONTROL_DOWN),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_ALT_DOWN) ==
|
| + static_cast<int32>(ui::EF_ALT_DOWN),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_LEFT_MOUSE_BUTTON) ==
|
| + static_cast<int32>(ui::EF_LEFT_MOUSE_BUTTON),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_MIDDLE_MOUSE_BUTTON) ==
|
| + static_cast<int32>(ui::EF_MIDDLE_MOUSE_BUTTON),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_RIGHT_MOUSE_BUTTON) ==
|
| + static_cast<int32>(ui::EF_RIGHT_MOUSE_BUTTON),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_COMMAND_DOWN) ==
|
| + static_cast<int32>(ui::EF_COMMAND_DOWN),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_EXTENDED) ==
|
| + static_cast<int32>(ui::EF_EXTENDED),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_IS_SYNTHESIZED) ==
|
| + static_cast<int32>(ui::EF_IS_SYNTHESIZED),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_ALTGR_DOWN) ==
|
| + static_cast<int32>(ui::EF_ALTGR_DOWN),
|
| + event_flags_should_match);
|
| +COMPILE_ASSERT(static_cast<int32>(EVENT_FLAGS_MOD3_DOWN) ==
|
| + static_cast<int32>(ui::EF_MOD3_DOWN),
|
| + event_flags_should_match);
|
| +
|
| +
|
| +// static
|
| +EventType TypeConverter<EventType, ui::EventType>::ConvertFrom(
|
| + ui::EventType type) {
|
| +
|
| +#define MOJO_INPUT_EVENT_NAME(name) case ui::ET_##name: return EVENT_TYPE_##name
|
| +
|
| + switch (type) {
|
| +#include "mojo/services/public/cpp/input_events/lib/input_event_names.h"
|
| + case ui::ET_LAST:
|
| + NOTREACHED();
|
| + break;
|
| + }
|
| +
|
| +#undef MOJO_INPUT_EVENT_NAME
|
| +
|
| + NOTREACHED();
|
| + return EVENT_TYPE_UNKNOWN;
|
| +}
|
| +
|
| +// static
|
| +ui::EventType TypeConverter<EventType, ui::EventType>::ConvertTo(
|
| + EventType type) {
|
| +
|
| +#define MOJO_INPUT_EVENT_NAME(name) case EVENT_TYPE_##name: return ui::ET_##name
|
| +
|
| + switch (type) {
|
| +#include "mojo/services/public/cpp/input_events/lib/input_event_names.h"
|
| + }
|
| +
|
| +#undef MOJO_INPUT_EVENT_NAME
|
| +
|
| + NOTREACHED();
|
| + return ui::ET_UNKNOWN;
|
| +}
|
| +
|
| +
|
| // static
|
| EventPtr TypeConverter<EventPtr, ui::Event>::ConvertFrom(
|
| const ui::Event& input) {
|
| EventPtr event(Event::New());
|
| - event->action = input.type();
|
| - event->flags = input.flags();
|
| + event->action = TypeConverter<EventType, ui::EventType>::ConvertFrom(
|
| + input.type());
|
| + event->flags = EventFlags(input.flags());
|
| event->time_stamp = input.time_stamp().ToInternalValue();
|
|
|
| if (input.IsMouseEvent() || input.IsTouchEvent()) {
|
| @@ -59,34 +138,36 @@ scoped_ptr<ui::Event>
|
| TypeConverter<EventPtr, scoped_ptr<ui::Event> >::ConvertTo(
|
| const EventPtr& input) {
|
| scoped_ptr<ui::Event> ui_event;
|
| + ui::EventType ui_event_type =
|
| + TypeConverter<EventType, ui::EventType>::ConvertTo(input->action);
|
| switch (input->action) {
|
| - case ui::ET_KEY_PRESSED:
|
| - case ui::ET_KEY_RELEASED:
|
| + case EVENT_TYPE_KEY_PRESSED:
|
| + case EVENT_TYPE_KEY_RELEASED:
|
| ui_event.reset(new ui::KeyEvent(
|
| - static_cast<ui::EventType>(input->action),
|
| + ui_event_type,
|
| static_cast<ui::KeyboardCode>(
|
| input->key_data->key_code),
|
| - input->flags,
|
| + ui::EventFlags(input->flags),
|
| input->key_data->is_char));
|
| break;
|
| - case ui::ET_MOUSE_PRESSED:
|
| - case ui::ET_MOUSE_DRAGGED:
|
| - case ui::ET_MOUSE_RELEASED:
|
| - case ui::ET_MOUSE_MOVED:
|
| - case ui::ET_MOUSE_ENTERED:
|
| - case ui::ET_MOUSE_EXITED: {
|
| + case EVENT_TYPE_MOUSE_PRESSED:
|
| + case EVENT_TYPE_MOUSE_DRAGGED:
|
| + case EVENT_TYPE_MOUSE_RELEASED:
|
| + case EVENT_TYPE_MOUSE_MOVED:
|
| + case EVENT_TYPE_MOUSE_ENTERED:
|
| + case EVENT_TYPE_MOUSE_EXITED: {
|
| const gfx::PointF location(TypeConverter<PointPtr, gfx::Point>::ConvertTo(
|
| input->location));
|
| // TODO: last flags isn't right. Need to send changed_flags.
|
| ui_event.reset(new ui::MouseEvent(
|
| - static_cast<ui::EventType>(input->action),
|
| + ui_event_type,
|
| location,
|
| location,
|
| - input->flags,
|
| - input->flags));
|
| + ui::EventFlags(input->flags),
|
| + ui::EventFlags(input->flags)));
|
| break;
|
| }
|
| - case ui::ET_MOUSEWHEEL: {
|
| + case EVENT_TYPE_MOUSEWHEEL: {
|
| const gfx::PointF location(TypeConverter<PointPtr, gfx::Point>::ConvertTo(
|
| input->location));
|
| const gfx::Vector2d offset(input->wheel_data->x_offset,
|
| @@ -94,19 +175,19 @@ TypeConverter<EventPtr, scoped_ptr<ui::Event> >::ConvertTo(
|
| ui_event.reset(new ui::MouseWheelEvent(offset,
|
| location,
|
| location,
|
| - input->flags,
|
| - input->flags));
|
| + ui::EventFlags(input->flags),
|
| + ui::EventFlags(input->flags)));
|
| break;
|
| }
|
| - case ui::ET_TOUCH_MOVED:
|
| - case ui::ET_TOUCH_PRESSED:
|
| - case ui::ET_TOUCH_CANCELLED:
|
| - case ui::ET_TOUCH_RELEASED: {
|
| + case EVENT_TYPE_TOUCH_MOVED:
|
| + case EVENT_TYPE_TOUCH_PRESSED:
|
| + case EVENT_TYPE_TOUCH_CANCELLED:
|
| + case EVENT_TYPE_TOUCH_RELEASED: {
|
| gfx::Point location(input->location->x, input->location->y);
|
| ui_event.reset(new ui::TouchEvent(
|
| - static_cast<ui::EventType>(input->action),
|
| + ui_event_type,
|
| location,
|
| - input->flags,
|
| + ui::EventFlags(input->flags),
|
| input->touch_data->pointer_id,
|
| base::TimeDelta::FromInternalValue(input->time_stamp),
|
| 0.f, 0.f, 0.f, 0.f));
|
|
|