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

component("wm") {
  sources = [
    "core/accelerator_delegate.h",
    "core/accelerator_filter.cc",
    "core/accelerator_filter.h",
    "core/base_focus_rules.cc",
    "core/base_focus_rules.h",
    "core/capture_controller.cc",
    "core/capture_controller.h",
    "core/compound_event_filter.cc",
    "core/compound_event_filter.h",
    "core/coordinate_conversion.cc",
    "core/coordinate_conversion.h",
    "core/cursor_manager.cc",
    "core/cursor_manager.h",
    "core/default_activation_client.cc",
    "core/default_activation_client.h",
    "core/easy_resize_window_targeter.cc",
    "core/easy_resize_window_targeter.h",
    "core/focus_controller.cc",
    "core/focus_controller.h",
    "core/focus_rules.h",
    "core/image_grid.cc",
    "core/image_grid.h",
    "core/input_method_event_filter.cc",
    "core/input_method_event_filter.h",
    "core/masked_window_targeter.cc",
    "core/masked_window_targeter.h",
    "core/native_cursor_manager.h",
    "core/native_cursor_manager_delegate.h",
    "core/nested_accelerator_dispatcher_linux.cc",
    "core/nested_accelerator_dispatcher_win.cc",
    "core/nested_accelerator_dispatcher.cc",
    "core/nested_accelerator_dispatcher.h",
    "core/nested_accelerator_delegate.h",
    "core/nested_accelerator_controller.cc",
    "core/nested_accelerator_controller.h",
    "core/shadow.cc",
    "core/shadow.h",
    "core/shadow_controller.cc",
    "core/shadow_controller.h",
    "core/shadow_types.cc",
    "core/shadow_types.h",
    "core/transient_window_controller.cc",
    "core/transient_window_controller.h",
    "core/transient_window_manager.cc",
    "core/transient_window_manager.h",
    "core/transient_window_observer.h",
    "core/transient_window_stacking_client.cc",
    "core/transient_window_stacking_client.h",
    "core/user_activity_detector.cc",
    "core/user_activity_detector.h",
    "core/user_activity_observer.h",
    "core/visibility_controller.cc",
    "core/visibility_controller.h",
    "core/window_animations.cc",
    "core/window_animations.h",
    "core/window_modality_controller.cc",
    "core/window_modality_controller.h",
    "core/window_util.cc",
    "core/window_util.h",
    "core/wm_core_switches.cc",
    "core/wm_core_switches.h",
    "core/wm_state.cc",
    "core/wm_state.h",
    "public/window_types.h",
    "wm_export.h",
  ]

  defines = [ "WM_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//skia",
    "//ui/aura",
    "//ui/base",
    "//ui/compositor",
    "//ui/events",
    "//ui/events/platform",
    "//ui/events:events_base",
    "//ui/events/platform",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/resources",
  ]

  # http://crbug.com/408650 Circular dependency between this target and Aura.
  allow_circular_includes_from = [ "//ui/aura" ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "test/wm_test_helper.cc",
    "test/wm_test_helper.h",
  ]

  deps = [
    ":wm",
    "//skia",
    "//ui/aura",
    "//ui/aura:test_support",
    "//ui/base",
    "//ui/events",
    "//ui/events:events_base",
  ]
}

test("wm_unittests") {
  sources = [
    "test/run_all_unittests.cc",
    "core/compound_event_filter_unittest.cc",
    "core/cursor_manager_unittest.cc",
    "core/focus_controller_unittest.cc",
    "core/input_method_event_filter_unittest.cc",
    "core/image_grid_unittest.cc",
    "core/nested_accelerator_controller_unittest.cc",
    "core/shadow_controller_unittest.cc",
    "core/transient_window_manager_unittest.cc",
    "core/transient_window_stacking_client_unittest.cc",
    "core/user_activity_detector_unittest.cc",
    "core/visibility_controller_unittest.cc",
    "core/window_animations_unittest.cc",
  ]

  deps = [
    ":test_support",
    ":wm",
    "//base",
    "//base/test:test_support",
    "//skia",
    "//testing/gtest",
    "//ui/aura:test_support",
    "//ui/base:test_support",
    "//ui/compositor:test_support",
    "//ui/events:test_support",
    "//ui/events/platform",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/gl",
  ]
}