# 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")

component("views_examples_lib") {
  testonly = true

  sources = [
    "bubble_example.cc",
    "bubble_example.h",
    "button_example.cc",
    "button_example.h",
    "checkbox_example.cc",
    "checkbox_example.h",
    "combobox_example.cc",
    "combobox_example.h",
    "double_split_view_example.cc",
    "double_split_view_example.h",
    "example_base.cc",
    "example_base.h",
    "example_combobox_model.cc",
    "example_combobox_model.h",
    "examples_window.cc",
    "examples_window.h",
    "label_example.cc",
    "label_example.h",
    "link_example.cc",
    "link_example.h",
    "message_box_example.cc",
    "message_box_example.h",
    "menu_example.cc",
    "menu_example.h",
    "multiline_example.cc",
    "multiline_example.h",
    "progress_bar_example.cc",
    "progress_bar_example.h",
    "radio_button_example.cc",
    "radio_button_example.h",
    "scroll_view_example.cc",
    "scroll_view_example.h",
    "single_split_view_example.cc",
    "single_split_view_example.h",
    "slider_example.cc",
    "slider_example.h",
    "tabbed_pane_example.cc",
    "tabbed_pane_example.h",
    "table_example.cc",
    "table_example.h",
    "text_example.cc",
    "text_example.h",
    "textfield_example.cc",
    "textfield_example.h",
    "throbber_example.cc",
    "throbber_example.h",
    "tree_view_example.cc",
    "tree_view_example.h",
    "views_examples_export.h",
    "widget_example.cc",
    "widget_example.h",
  ]

  defines = [ "VIEWS_EXAMPLES_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//skia",
    "//third_party/icu",
    "//ui/base",
    "//ui/events",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/resources",
    "//ui/resources:ui_test_pak",
    "//ui/views",
  ]

  if (is_win) {
    deps += [ "//third_party/wtl" ]

    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    cflags = [ "/wd4267" ]
  }

  if (use_aura) {
    deps += [ "//ui/aura" ]
  }
}

executable("views_examples_exe") {
  testonly = true

  sources = [
    "examples_main.cc",
  ]

  deps = [
    ":views_examples_lib",
    "//base",
    "//base:i18n",
    "//ui/base",
    "//ui/compositor",
    "//ui/compositor:test_support",
    "//ui/gfx",
    "//ui/gl",
    "//ui/resources:ui_test_pak",
    "//ui/views",
    "//ui/views:test_support",
    "//ui/wm",
  ]

  if (use_aura) {
    deps += [ "//ui/aura" ]
  }
  if (use_x11) {
    deps += [ "//ui/gfx/x" ]
  }
}

component("views_examples_with_content_lib") {
  testonly = true
  sources = [
    "examples_window_with_content.cc",
    "examples_window_with_content.h",
    "views_examples_with_content_export.h",
    "webview_example.cc",
    "webview_example.h",
  ]

  defines = [ "VIEWS_EXAMPLES_WITH_CONTENT_IMPLEMENTATION" ]

  deps = [
    ":views_examples_lib",
    "//base",
    "//content",
    "//skia",
    "//ui/events",
    "//ui/views",
    "//ui/views/controls/webview",
    "//url",
  ]
}

executable("views_examples_with_content_exe") {
  testonly = true

  sources = [
    "examples_with_content_main_exe.cc",
  ]

  defines = [ "VIEWS_EXAMPLES_WITH_CONTENT_IMPLEMENTATION" ]

  deps = [
    ":views_examples_with_content_lib",
    "//base",
    "//content",
    "//ui/views_content_client",
  ]
}