github-tui/lib/scroll.ml
Dmitrii Kovanikov 98b9b48d6f Add scroller
2024-06-22 18:11:10 +01:00

22 lines
475 B
OCaml

type t = {
height : int;
span : int;
lines : int;
offset : int;
}
type sections = {
before : int;
scroll : int;
after : int;
}
let make ~height ~span ~lines ~offset =
if lines <= height then None else Some { height; span; lines; offset }
let to_sections { height; span; lines; offset } =
let before = offset * height / lines in
let scroll = span * height / lines in
let after = (lines - span - offset) * height / lines in
{ before; scroll; after }