# 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.

import("//build/config/ui.gni")

static_library("dom4_keycode_converter") {
  sources = [
    "keycodes/dom4/keycode_converter.cc",
    "keycodes/dom4/keycode_converter.h",
    "keycodes/dom4/keycode_converter_data.h",
  ]

  deps = [ "//base" ]
}

component("events_base") {
  sources = [
    "android/scroller.cc",
    "android/scroller.h",
    "device_data_manager.cc",
    "device_data_manager.h",
    "device_hotplug_event_observer.h",
    "event_constants.h",
    "event_switches.cc",
    "event_switches.h",
    "events_base_export.h",
    "gesture_curve.h",
    "gesture_event_details.cc",
    "gesture_event_details.h",
    "gestures/fling_curve.cc",
    "gestures/fling_curve.h",
    "gestures/gesture_configuration.cc",
    "gestures/gesture_configuration.h",
    "keycodes/keyboard_code_conversion.cc",
    "keycodes/keyboard_code_conversion.h",
    "keycodes/keyboard_code_conversion_android.cc",
    "keycodes/keyboard_code_conversion_android.h",
    "keycodes/keyboard_code_conversion_mac.h",
    "keycodes/keyboard_code_conversion_mac.mm",
    "keycodes/keyboard_code_conversion_win.cc",
    "keycodes/keyboard_code_conversion_win.h",
    "keycodes/keyboard_codes.h",
    "latency_info.cc",
    "latency_info.h",
    "touchscreen_device.cc",
    "touchscreen_device.h",
  ]

  defines = [ "EVENTS_BASE_IMPLEMENTATION" ]

  deps = [
    ":dom4_keycode_converter",
    "//base/third_party/dynamic_annotations",
    "//skia",
  ]

  public_deps = [
    "//base",
    "//ui/events/platform",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]

  if (use_x11) {
    configs += [ "//build/config/linux:x11" ]

    sources += [
      "keycodes/keyboard_code_conversion_x.cc",
      "keycodes/keyboard_code_conversion_x.h",
      "x/device_data_manager_x11.cc",
      "x/device_data_manager_x11.h",
      "x/device_list_cache_x.cc",
      "x/device_list_cache_x.h",
      "x/hotplug_event_handler_x11.cc",
      "x/hotplug_event_handler_x11.h",
      "x/keysym_to_unicode.cc",
      "x/keysym_to_unicode.h",
      "x/touch_factory_x11.cc",
      "x/touch_factory_x11.h",
    ]

    deps += [ "//ui/gfx/x" ]
  }
}

component("events") {
  sources = [
    "cocoa/cocoa_event_utils.h",
    "cocoa/cocoa_event_utils.mm",
    "cocoa/events_mac.mm",
    "event.cc",
    "event.h",
    "event_dispatcher.cc",
    "event_dispatcher.h",
    "event_handler.cc",
    "event_handler.h",
    "event_processor.cc",
    "event_processor.h",
    "event_rewriter.h",
    "event_source.cc",
    "event_source.h",
    "event_target.cc",
    "event_target.h",
    "event_target_iterator.h",
    "event_targeter.cc",
    "event_targeter.h",
    "event_utils.cc",
    "event_utils.h",
    "events_export.h",
    "events_stub.cc",
    "gestures/gesture_recognizer_impl_mac.cc",
    "gestures/gesture_types.h",
    "win/events_win.cc",
  ]

  defines = [ "EVENTS_IMPLEMENTATION" ]

  public_deps = [
    ":events_base",
  ]
  deps = [
    ":dom4_keycode_converter",
    ":gesture_detection",
    "//base/third_party/dynamic_annotations",
    "//skia",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]

  if (use_x11) {
    sources += [ "x/events_x.cc" ]
    configs += [
      "//build/config/linux:glib",
      "//build/config/linux:x11",
    ]
    deps += [ "//ui/gfx/x" ]
  }

  if (!is_chromeos && is_linux) {
    sources += [
      "linux/text_edit_command_auralinux.cc",
      "linux/text_edit_command_auralinux.h",
      "linux/text_edit_key_bindings_delegate_auralinux.cc",
      "linux/text_edit_key_bindings_delegate_auralinux.h",
    ]
  }

  if (use_ozone) {
    sources += [
      "ozone/events_ozone.cc",
    ]
  }

  if (use_aura) {
    sources += [
      "gestures/gesture_provider_aura.cc",
      "gestures/gesture_provider_aura.h",
      "gestures/motion_event_aura.cc",
      "gestures/motion_event_aura.h",
      "gestures/gesture_recognizer.h",
      "gestures/gesture_recognizer_impl.cc",
      "gestures/gesture_recognizer_impl.h",
    ]
  }

  if (is_win || is_mac || use_x11 || use_ozone) {
    sources -= [ "events_stub.cc" ]
  }
}

component("gesture_detection") {
  sources = [
    "gesture_detection/bitset_32.h",
    "gesture_detection/filtered_gesture_provider.cc",
    "gesture_detection/filtered_gesture_provider.h",
    "gesture_detection/gesture_config_helper.h",
    "gesture_detection/gesture_detection_export.h",
    "gesture_detection/gesture_detector.cc",
    "gesture_detection/gesture_detector.h",
    "gesture_detection/gesture_event_data.cc",
    "gesture_detection/gesture_event_data.h",
    "gesture_detection/gesture_event_data_packet.cc",
    "gesture_detection/gesture_event_data_packet.h",
    "gesture_detection/gesture_listeners.cc",
    "gesture_detection/gesture_listeners.h",
    "gesture_detection/gesture_provider.cc",
    "gesture_detection/gesture_provider.h",
    "gesture_detection/gesture_touch_uma_histogram.cc",
    "gesture_detection/gesture_touch_uma_histogram.h",
    "gesture_detection/motion_event.cc",
    "gesture_detection/motion_event.h",
    "gesture_detection/motion_event_buffer.cc",
    "gesture_detection/motion_event_buffer.h",
    "gesture_detection/motion_event_generic.cc",
    "gesture_detection/motion_event_generic.h",
    "gesture_detection/scale_gesture_detector.cc",
    "gesture_detection/scale_gesture_detector.h",
    "gesture_detection/scale_gesture_listeners.cc",
    "gesture_detection/scale_gesture_listeners.h",
    "gesture_detection/snap_scroll_controller.cc",
    "gesture_detection/snap_scroll_controller.h",
    "gesture_detection/touch_disposition_gesture_filter.cc",
    "gesture_detection/touch_disposition_gesture_filter.h",
    "gesture_detection/velocity_tracker_state.cc",
    "gesture_detection/velocity_tracker_state.h",
    "gesture_detection/velocity_tracker.cc",
    "gesture_detection/velocity_tracker.h",
  ]

  deps = [
    ":events_base",
    "//base",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]

  defines = [ "GESTURE_DETECTION_IMPLEMENTATION" ]

  if (is_android) {
    sources += [ "gesture_detection/gesture_config_helper_android.cc" ]
  } else if (use_aura) {
    sources += [ "gesture_detection/gesture_config_helper_aura.cc" ]
  } else {
    sources += [ "gesture_detection/gesture_config_helper.cc" ]
  }
}

source_set("test_support") {
  sources = [
    "test/cocoa_test_event_utils.h",
    "test/cocoa_test_event_utils.mm",
    "test/event_generator.cc",
    "test/event_generator.h",
    "test/events_test_utils.cc",
    "test/events_test_utils.h",
    "test/mock_motion_event.cc",
    "test/mock_motion_event.h",
    "test/platform_event_waiter.cc",
    "test/platform_event_waiter.h",
    "test/test_event_handler.cc",
    "test/test_event_handler.h",
    "test/test_event_processor.cc",
    "test/test_event_processor.h",
    "test/test_event_target.cc",
    "test/test_event_target.h",
  ]

  public_deps = [
    ":events",
    ":events_base",
    ":gesture_detection",
  ]
  deps = [
    "//base",
    "//skia",
    "//ui/events/platform",
    "//ui/gfx/geometry",
  ]

  if (is_ios) {
    sources -= [
      "test/cocoa_test_event_utils.h",
      "test/cocoa_test_event_utils.mm",
    ]
  }

  if (use_x11) {
    sources += [
      "test/events_test_utils_x11.cc",
      "test/events_test_utils_x11.h",
    ]
    deps += [ "//ui/gfx/x" ]
  }
}

test("events_unittests") {
  sources = [
    "android/scroller_unittest.cc",
    "cocoa/events_mac_unittest.mm",
    "event_dispatcher_unittest.cc",
    "event_processor_unittest.cc",
    "event_rewriter_unittest.cc",
    "event_unittest.cc",
    "gesture_detection/bitset_32_unittest.cc",
    "gesture_detection/gesture_event_data_packet_unittest.cc",
    "gesture_detection/gesture_provider_unittest.cc",
    "gesture_detection/motion_event_buffer_unittest.cc",
    "gesture_detection/motion_event_generic_unittest.cc",
    "gesture_detection/touch_disposition_gesture_filter_unittest.cc",
    "gesture_detection/velocity_tracker_unittest.cc",
    "gestures/fling_curve_unittest.cc",
    "keycodes/dom4/keycode_converter_unittest.cc",
    "latency_info_unittest.cc",
    "platform/platform_event_source_unittest.cc",
    "x/events_x_unittest.cc",
  ]

  deps = [
    ":dom4_keycode_converter",
    ":events",
    ":events_base",
    ":gesture_detection",
    ":test_support",
    "//base",
    "//base/test:run_all_unittests",
    "//skia",
    "//testing/gtest",
    "//ui/events/platform",
    "//ui/gfx:test_support",
  ]

  if (use_x11) {
    configs += [ "//build/config/linux:x11" ]
    deps += [ "//ui/gfx/x" ]
  } else {
    sources -= [
      "x/events_x_unittest.cc",
    ]
  }

  if (use_ozone) {
    sources += [
      "ozone/evdev/key_event_converter_evdev_unittest.cc",
      "ozone/evdev/touch_event_converter_evdev_unittest.cc",
    ]
  }

  if (use_aura) {
    sources += [
      "gestures/gesture_provider_aura_unittest.cc",
    ]
  }
}
