compute ui.w and ui.h during update
This commit is contained in:
39
boot_js.ml
39
boot_js.ml
@ -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
|
||||
|
||||
Reference in New Issue
Block a user