diff options
Diffstat (limited to 'lib/elements/input.ml')
-rwxr-xr-x | lib/elements/input.ml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/elements/input.ml b/lib/elements/input.ml new file mode 100755 index 0000000..6ae9aa8 --- /dev/null +++ b/lib/elements/input.ml @@ -0,0 +1,23 @@ +open Brr +open Brr_note +open Note + +(** Create a slider element, and a signal with the value *) +let slider + : at:Brr.At.t list -> Brr.El.t * float S.t + + = fun ~at -> + let slider = + El.input ~at () in + + let init_value = (Jstr.to_float (El.prop El.Prop.value slider)) in + + let event = + Evr.on_el + Ev.input (fun _ -> + let raw_value = El.prop El.Prop.value slider in + Jstr.to_float raw_value) + slider + |> S.hold init_value + in + slider, event |