Index: ui/events/event_utils.cc |
diff --git a/ui/events/event_utils.cc b/ui/events/event_utils.cc |
index e5a319e10f15bf0daab6633f98588eb86fd0b272..ad7820fdebc5997d4e9a680f26a6bab5df1371c0 100644 |
--- a/ui/events/event_utils.cc |
+++ b/ui/events/event_utils.cc |
@@ -16,6 +16,44 @@ namespace { |
int g_custom_event_types = ET_LAST; |
} // namespace |
+Event* EventFromNative(const base::NativeEvent& native_event) { |
+ EventType type = EventTypeFromNative(native_event); |
+ switch(type) { |
+ case ET_KEY_PRESSED: |
+ case ET_KEY_RELEASED: |
+ return new KeyEvent(native_event, false); |
+ |
+ case ET_TRANSLATED_KEY_PRESS: |
+ case ET_TRANSLATED_KEY_RELEASE: |
+ return new TranslatedKeyEvent(native_event, false); |
+ |
+ case ET_MOUSE_PRESSED: |
+ case ET_MOUSE_DRAGGED: |
+ case ET_MOUSE_RELEASED: |
+ case ET_MOUSE_MOVED: |
+ case ET_MOUSE_ENTERED: |
+ case ET_MOUSE_EXITED: |
+ return new MouseEvent(native_event); |
+ |
+ case ET_MOUSEWHEEL: |
+ return new MouseWheelEvent(native_event); |
+ |
+ case ET_SCROLL_FLING_START: |
+ case ET_SCROLL_FLING_CANCEL: |
+ case ET_SCROLL: |
+ return new ScrollEvent(native_event); |
+ |
+ case ET_TOUCH_RELEASED: |
+ case ET_TOUCH_PRESSED: |
+ case ET_TOUCH_MOVED: |
+ case ET_TOUCH_CANCELLED: |
+ return new TouchEvent(native_event); |
+ |
+ default: |
+ return NULL; |
+ } |
+} |
+ |
int RegisterCustomEventType() { |
return ++g_custom_event_types; |
} |