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

source_set("elements") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "extended_touch_target_button.h",
    "extended_touch_target_button.mm",
    "selector_coordinator.h",
    "selector_coordinator.mm",
    "selector_picker_presentation_controller.h",
    "selector_picker_presentation_controller.mm",
    "selector_picker_view_controller.h",
    "selector_picker_view_controller.mm",
    "selector_view_controller_delegate.h",
    "top_aligned_image_view.h",
    "top_aligned_image_view.mm",
    "windowed_container_view.h",
    "windowed_container_view.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/browser",
    "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
    "//ios/chrome/browser/ui/util",
  ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "activity_overlay_coordinator_unittest.mm",
    "chrome_activity_overlay_coordinator_unittest.mm",
    "selector_coordinator_unittest.mm",
    "selector_picker_view_controller_unittest.mm",
    "windowed_container_view_unittest.mm",
  ]
  deps = [
    ":elements",
    ":elements_internal",
    "//base",
    "//base/test:test_support",
    "//ios/chrome/test:test_support",
    "//testing/gtest",
    "//third_party/ocmock",
  ]
}

source_set("elements_internal") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "activity_overlay_coordinator.h",
    "activity_overlay_coordinator.mm",
    "activity_overlay_view_controller.h",
    "activity_overlay_view_controller.mm",
    "chrome_activity_overlay_coordinator.h",
    "chrome_activity_overlay_coordinator.mm",
    "chrome_activity_overlay_view_controller.h",
    "chrome_activity_overlay_view_controller.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/browser",
    "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
    "//ios/chrome/browser/ui/material_components",
    "//ios/chrome/browser/ui/util",
    "//ios/chrome/common/ui_util",
    "//ios/third_party/material_components_ios",
  ]
  libs = [ "UIKit.framework" ]
}
