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

source_set("platform_window") {
  sources = [
    "platform_ime_controller.h",
    "platform_window.h",
    "platform_window_delegate.h",
    "platform_window_init_properties.cc",
    "platform_window_init_properties.h",
    "text_input_state.cc",
    "text_input_state.h",
  ]

  deps = [
    "//base",
    "//ui/base",
    "//ui/base/ime:text_input_types",
    "//ui/gfx",
  ]

  if (is_fuchsia) {
    sources += [
      "fuchsia/initialize_presenter_api_view.cc",
      "fuchsia/initialize_presenter_api_view.h",
    ]

    public_deps = [
      "//third_party/fuchsia-sdk/sdk:scenic_cpp",
      "//third_party/fuchsia-sdk/sdk:ui_policy",
      "//third_party/fuchsia-sdk/sdk:ui_views",
    ]
  }
}

group("platform_impls") {
  public_deps = [
    "//ui/platform_window/stub",
  ]
  if (is_android) {
    public_deps += [
      "//ui/platform_window/android",
      "//ui/platform_window/android:jni_headers",
    ]
  } else if (use_x11) {
    public_deps += [ "//ui/platform_window/x11" ]
  } else if (is_win) {
    public_deps += [ "//ui/platform_window/win" ]
  }
}
