compute ui.w and ui.h during update

This commit is contained in:
cqc
2022-12-10 14:27:22 -06:00
parent af92f03706
commit 7baa6f3648
2 changed files with 282 additions and 195 deletions

View File

@ -4,8 +4,7 @@ module NVG = Graphv_webgl
let _ =
Logs.set_reporter (Human.Logs_reporter.console_reporter ());
Logs.set_level (Some Debug);
Logs.debug (fun m -> m "hello")
Logs.set_level (Some Debug)
module Log = (val Logs.src_log Logs.default : Logs.LOG)
@ -87,13 +86,37 @@ let _ =
let vg = graphv_initialize webgl_ctx in
let open Js_of_ocaml_lwt.Lwt_js_events in
let edit_me = Lwd.var ("edit me?", 0) in
let open Nottui in
let gravity_pad = Gravity.make ~h:`Negative ~v:`Negative in
let gravity_crop = Gravity.make ~h:`Positive ~v:`Negative in
let body = Lwd.var (Lwd.pure Ui.empty) in
let wm = Nottui_widgets.window_manager (Lwd.join (Lwd.get body)) in
let ui =
Nottui_widgets.(
let string s = Lwd.pure @@ Nottui_widgets.string s in
scroll_area
@@ Lwd_utils.pack Ui.pack_y
[
edit_field edit_me;
string "derp derp derp";
string "herp herp derp";
string "ding dong beep beep";
string "derp derp derp";
string "herp herp derp";
string "ding dong beep beep";
string "derp derp derp";
string "herp herp derp";
string "ding dong beep beep";
string "derp derp derp";
string "herp herp derp";
string "ding dong beep beep";
main_menu_item wm "Quit" (fun () -> exit 0);
])
in
let root =
let open Nottui_widgets in
edit_field (Lwd.get edit_me)
~on_change:(fun ((text, pos) as state) ->
Log.debug (fun m -> m "--- on_change (%s,%d)" text pos);
Lwd.set edit_me state)
~on_submit:ignore
Lwd.set body
(Lwd.map ~f:(Ui.resize ~pad:gravity_pad ~crop:gravity_crop) ui);
Nottui_widgets.window_manager_view wm
in
let events, push_event = Lwt_stream.create () in