[package]
name = "fltk"
version = "1.4.23"
authors = ["The fltk-rs Authors"]
edition = "2021"
rust-version = "1.56"
description = "Rust bindings for the FLTK GUI library"
repository = "https://github.com/fltk-rs/fltk-rs"
documentation = "https://docs.rs/fltk"
keywords = ["gui", "ui", "toolkit", "widgets", "user-interface"]
categories = ["gui"]
readme = "README.md"
license = "MIT"
exclude = ["/.github", "./examples"]

[lib]
name = "fltk"
path = "src/lib.rs"

[dependencies]
fltk-sys = { path = "../fltk-sys", version = "1.4.23" }
bitflags = "^2"
paste = "1"
crossbeam-channel = "0.5"
ttf-parser = "0.20"
# Enables getting a raw window handle on supported platforms, fixed at version 0.4 for fltk 1.* compat
raw-window-handle = { version = "^0.4", optional = true }
# Enables getting a raw window handle on supported platforms, tracks the current raw-window-handle version. 
rwh05 = { package = "raw-window-handle", version = "0.5", optional = true }

[features]
default = []
# Support for bundled versions of cfltk and fltk (requires curl and tar)
fltk-bundled = ["fltk-sys/fltk-bundled"] 
# Support for systems without OpenGL
enable-glwindow = ["fltk-sys/enable-glwindow"] 
# You can use this if you don't need rtl or cjk unicode support
no-pango = ["fltk-sys/no-pango"] 
# Builds a shared lib of fltk
fltk-shared = ["fltk-sys/fltk-shared"] 
# If you have ninja build installed or it's available, it builds faster than make or VS
use-ninja = ["fltk-sys/use-ninja"] 
# If you would like to use the installed fltk library, should be FLTK 1.4
system-fltk = ["fltk-sys/system-fltk"] 
# Uses the system libpng
system-libpng = ["fltk-sys/system-libpng"] 
# Uses the system libjpeg
system-libjpeg = ["fltk-sys/system-libjpeg"] 
# Uses the system zlib
system-zlib = ["fltk-sys/system-zlib"] 
# Disable gdiplus drawing
no-gdiplus = ["fltk-sys/no-gdiplus"] 
# (Experimental) You can use this feature if your app doesn't use images to reduce binary size
no-images = ["fltk-sys/no-images"] 
# (Experimental) Support of Lagacy OpenGL
legacy-opengl = ["fltk-sys/legacy-opengl"] 
# (Experimental) Disable multithreading support when linking X11 libs non-mt x11 libs.
single-threaded = ["fltk-sys/single-threaded"] 
# Use FLTK's wayland backend on linux systems.
use-wayland = ["fltk-sys/use-wayland"] 
# Ensure MSVCRT is linked statically even if cargo does not pass the flag to the build script.
static-msvcrt = ["fltk-sys/static-msvcrt"] 
# Sets FLTK's OPTION_CAIROEXT which enables user code to get the cairo context for drawing
cairoext = ["fltk-sys/cairoext"] 
# Allows the use of an installed instance of FLTK via fltk-config. This requires FLTK 1.4
fltk-config = ["fltk-sys/fltk-config"]
# Allows the use of an installed instance of cfltk via pkg-config.
pkg-config = ["fltk-sys/pkg-config"]

[package.metadata.docs.rs]
features = ["enable-glwindow"]
rustdoc-args = ["--cfg", "docsrs"]

[[test]]
name = "app_handle"
path = "tests/app_handle.rs"
harness = false

[[test]]
name = "idle"
path = "tests/idle.rs"
harness = false

[[test]]
name = "messages"
path = "tests/messages.rs"
harness = false

[[test]]
name = "threads"
path = "tests/threads.rs"
harness = false

[[test]]
name = "modify_submenu"
path = "tests/modify_submenu.rs"
harness = false

[[test]]
name = "cmenu"
path = "tests/cmenu.rs"
harness = false

[[test]]
name = "global_state"
path = "tests/global_state.rs"
harness = false

[[test]]
name = "image"
path = "tests/image.rs"
harness = false

[[test]]
name = "clear"
path = "tests/clear.rs"
harness = false

[[test]]
name = "gl"
path = "tests/gl.rs"
harness = false
