diff --git a/Project.toml b/Project.toml index 67cee2b..ceaebb9 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "WidgetsBase" uuid = "eead4739-05f7-45a1-878c-cee36b57321c" authors = ["Simon Danisch"] -version = "0.1.2" +version = "0.2.2" [deps] Observables = "510215fc-4207-5dde-b226-833fc4488ee2" diff --git a/README.md b/README.md index 9e285a8..ba2c77c 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Button("hi") TextField("Write!") NumberInput(66.0) RangeSlider(1:100; value=[10, 80]) +FilePicker("text") ``` Rendering of the Widgets needs to happen in e.g. JSServe or Makie diff --git a/src/WidgetsBase.jl b/src/WidgetsBase.jl index 48e1789..91c715a 100644 --- a/src/WidgetsBase.jl +++ b/src/WidgetsBase.jl @@ -11,6 +11,6 @@ Observables.observe(x::AbstractWidget) = x.value include("ui_elements.jl") -export Button, Slider, RangeSlider, TextField, NumberInput, Checkbox +export Button, Slider, RangeSlider, TextField, NumberInput, Checkbox, FilePicker end # module diff --git a/src/ui_elements.jl b/src/ui_elements.jl index c2148a8..2dd9096 100644 --- a/src/ui_elements.jl +++ b/src/ui_elements.jl @@ -74,3 +74,11 @@ end function Checkbox(value::Bool; kw...) return Checkbox(Observable(value), Dict{Symbol, Any}(kw)) end +struct FilePicker <: AbstractWidget{String} + value::Observable{String} + attributes::Dict{Symbol, Any} +end + +function FilePicker(value::String; kw...) + FilePicker(Observable(value), Dict{Symbol, Any}(kw)) +end diff --git a/test/runtests.jl b/test/runtests.jl index a87bf33..6aab651 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -15,4 +15,7 @@ using Test checbkox = Checkbox(true) @test checbkox[] == true + + fp = FilePicker("text") + @test fp[] == "text" end