# Copyright 2018 The PDFium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("../../pdfium.gni")
import("../../testing/test.gni")

assert(pdf_enable_xfa)

source_set("fwl") {
  sources = [
    "cfwl_app.cpp",
    "cfwl_app.h",
    "cfwl_barcode.cpp",
    "cfwl_barcode.h",
    "cfwl_caret.cpp",
    "cfwl_caret.h",
    "cfwl_checkbox.cpp",
    "cfwl_checkbox.h",
    "cfwl_combobox.cpp",
    "cfwl_combobox.h",
    "cfwl_comboedit.cpp",
    "cfwl_comboedit.h",
    "cfwl_combolist.cpp",
    "cfwl_combolist.h",
    "cfwl_datetimeedit.cpp",
    "cfwl_datetimeedit.h",
    "cfwl_datetimepicker.cpp",
    "cfwl_datetimepicker.h",
    "cfwl_edit.cpp",
    "cfwl_edit.h",
    "cfwl_event.cpp",
    "cfwl_event.h",
    "cfwl_eventmouse.cpp",
    "cfwl_eventmouse.h",
    "cfwl_eventscroll.cpp",
    "cfwl_eventscroll.h",
    "cfwl_eventselectchanged.cpp",
    "cfwl_eventselectchanged.h",
    "cfwl_eventtextwillchange.cpp",
    "cfwl_eventtextwillchange.h",
    "cfwl_eventvalidate.cpp",
    "cfwl_eventvalidate.h",
    "cfwl_listbox.cpp",
    "cfwl_listbox.h",
    "cfwl_message.cpp",
    "cfwl_message.h",
    "cfwl_messagekey.cpp",
    "cfwl_messagekey.h",
    "cfwl_messagekillfocus.cpp",
    "cfwl_messagekillfocus.h",
    "cfwl_messagemouse.cpp",
    "cfwl_messagemouse.h",
    "cfwl_messagemousewheel.cpp",
    "cfwl_messagemousewheel.h",
    "cfwl_messagesetfocus.cpp",
    "cfwl_messagesetfocus.h",
    "cfwl_monthcalendar.cpp",
    "cfwl_monthcalendar.h",
    "cfwl_notedriver.cpp",
    "cfwl_notedriver.h",
    "cfwl_picturebox.cpp",
    "cfwl_picturebox.h",
    "cfwl_pushbutton.cpp",
    "cfwl_pushbutton.h",
    "cfwl_scrollbar.cpp",
    "cfwl_scrollbar.h",
    "cfwl_themebackground.cpp",
    "cfwl_themebackground.h",
    "cfwl_themepart.cpp",
    "cfwl_themepart.h",
    "cfwl_themetext.cpp",
    "cfwl_themetext.h",
    "cfwl_widget.cpp",
    "cfwl_widget.h",
    "cfwl_widgetmgr.cpp",
    "cfwl_widgetmgr.h",
    "fwl_widgetdef.h",
    "fwl_widgethit.h",
    "ifwl_themeprovider.cpp",
    "ifwl_themeprovider.h",
    "ifwl_widgetdelegate.h",
    "theme/cfwl_barcodetp.cpp",
    "theme/cfwl_barcodetp.h",
    "theme/cfwl_carettp.cpp",
    "theme/cfwl_carettp.h",
    "theme/cfwl_checkboxtp.cpp",
    "theme/cfwl_checkboxtp.h",
    "theme/cfwl_comboboxtp.cpp",
    "theme/cfwl_comboboxtp.h",
    "theme/cfwl_datetimepickertp.cpp",
    "theme/cfwl_datetimepickertp.h",
    "theme/cfwl_edittp.cpp",
    "theme/cfwl_edittp.h",
    "theme/cfwl_listboxtp.cpp",
    "theme/cfwl_listboxtp.h",
    "theme/cfwl_monthcalendartp.cpp",
    "theme/cfwl_monthcalendartp.h",
    "theme/cfwl_pictureboxtp.cpp",
    "theme/cfwl_pictureboxtp.h",
    "theme/cfwl_pushbuttontp.cpp",
    "theme/cfwl_pushbuttontp.h",
    "theme/cfwl_scrollbartp.cpp",
    "theme/cfwl_scrollbartp.h",
    "theme/cfwl_utils.h",
    "theme/cfwl_widgettp.cpp",
    "theme/cfwl_widgettp.h",
  ]
  configs += [
    "../../:pdfium_strict_config",
    "../../:pdfium_noshorten_config",
    "../:xfa_warnings",
  ]
  deps = [
    "../../core/fxcrt",
    "../../core/fxge",
    "../../fxbarcode",
    "../../fxjs:gc",
    "../fde",
    "../fgas/font",
    "../fgas/graphics",
  ]
  visibility = [ "../../*" ]
}

pdfium_embeddertest_source_set("embeddertests") {
  sources = [ "cfwl_edit_embeddertest.cpp" ]
  deps = [
    ":fwl",
    "../../core/fxge",
    "../../fxjs:gc",
  ]
  pdfium_root_dir = "../../"
}
