# Copyright 2015 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("//mojo/public/mojo_application.gni")
import("//mojo/tools/embed/rules.gni")

mojo_native_application("keyboard_native") {
  sources = [
    "animation.h",
    "clip_animation.cc",
    "clip_animation.h",
    "fast_out_slow_in_interpolator.cc",
    "fast_out_slow_in_interpolator.h",
    "key_layout.cc",
    "key_layout.h",
    "keyboard_service_impl.cc",
    "keyboard_service_impl.h",
    "main.cc",
    "material_splash_animation.cc",
    "material_splash_animation.h",
    "motion_decay_animation.cc",
    "motion_decay_animation.h",
    "time_interpolator.h",
    "view_observer_delegate.cc",
    "view_observer_delegate.h",
  ]

  deps = [
    ":action_icon",
    ":delete_icon",
    ":lower_case_icon",
    ":upper_case_icon",
    "//base",
    "//mojo/application",
    "//mojo/public/cpp/bindings",
    "//mojo/gpu",
    "//mojo/public/c/gles2",
    "//mojo/public/cpp/bindings:callback",
    "//mojo/public/cpp/utility",
    "//mojo/public/interfaces/application",
    "//mojo/services/geometry/public/cpp",
    "//mojo/services/geometry/public/interfaces",
    "//mojo/services/keyboard/public/interfaces",
    "//mojo/services/surfaces/public/cpp",
    "//mojo/services/surfaces/public/interfaces",
    "//mojo/services/surfaces/public/interfaces:surface_id",
    "//mojo/services/view_manager/public/cpp",
    "//mojo/skia",
    "//skia",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]
}

embed_file("action_icon") {
  source = "res/Emoticon.png"
  namespace = "keyboard_native"
  variable = "kActionIcon"
}

embed_file("delete_icon") {
  source = "res/Delete.png"
  namespace = "keyboard_native"
  variable = "kDeleteIcon"
}

embed_file("lower_case_icon") {
  source = "res/ArrowDown.png"
  namespace = "keyboard_native"
  variable = "kLowerCaseIcon"
}

embed_file("upper_case_icon") {
  source = "res/ArrowUp.png"
  namespace = "keyboard_native"
  variable = "kUpperCaseIcon"
}
