# 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")
import("//ui/views/features.gni")

assert(toolkit_views)

component("views") {
  output_name = "browser_ui_views"
  sources = [
    "accelerator_table.cc",
    "accelerator_table.h",
    "chrome_views_export.h",
    "event_utils.cc",
    "event_utils.h",
    "tab_icon_view_model.h",
    "tabs/tab_strip_observer.cc",
    "tabs/tab_strip_observer.h",
    "tabs/tab_strip_types.h",
  ]

  defines = [ "CHROME_VIEWS_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//chrome/app:command_ids",
    "//components/keep_alive_registry",
    "//components/vector_icons",
    "//content/public/browser",
    "//printing/buildflags",
    "//skia",
    "//ui/base",
    "//ui/events",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//url",
  ]

  if (is_chromeos) {
    deps += [ "//ash" ]
  }

  if (enable_native_window_nav_buttons) {
    sources += [ "nav_button_provider.h" ]
    deps += [
      "//ui/views",
      "//ui/views:buildflags",
    ]
  }
}
