package toffee
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
CSS layout engine for OCaml (Flexbox, Grid, Block)
Install
dune-project
Dependency
Authors
Maintainers
Sources
mosaic-0.1.0.tbz
sha256=9e4e90d17f9b2af1b07071fe425bc2c519c849c4f1d1ab73cde512be2d874849
sha512=06e9c4a741590942e81a27738d0b5c0413fafec8cf3b7dae047ad69f155e7b718aa4223818dc161b7d028efffcfd3365905e264d6fd31d453910ddfa91dcf9b9
doc/src/toffee.tree/layout_output.ml.html
Source file layout_output.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105type t = { size : float Geometry.size; content_size : float Geometry.size; first_baselines : float option Geometry.point; top_margin : Collapsible_margin_set.t; bottom_margin : Collapsible_margin_set.t; margins_can_collapse_through : bool; } let make ~size ~content_size ~first_baselines ~top_margin ~bottom_margin ~margins_can_collapse_through = { size; content_size; first_baselines; top_margin; bottom_margin; margins_can_collapse_through; } let size t = t.size let content_size t = t.content_size let first_baselines t = t.first_baselines let top_margin t = t.top_margin let bottom_margin t = t.bottom_margin let margins_can_collapse_through t = t.margins_can_collapse_through let = { size = Geometry.Size.zero; content_size = Geometry.Size.zero; first_baselines = Geometry.(Point.none); top_margin = Collapsible_margin_set.zero; bottom_margin = Collapsible_margin_set.zero; margins_can_collapse_through = false; } let default = { size = Geometry.Size.zero; content_size = Geometry.Size.zero; first_baselines = Geometry.(Point.none); top_margin = Collapsible_margin_set.zero; bottom_margin = Collapsible_margin_set.zero; margins_can_collapse_through = false; } let from_outer_size size = { size; (* Match Taffy: when only the outer size is known, content size is zero. *) content_size = Geometry.Size.zero; first_baselines = Geometry.(Point.none); top_margin = Collapsible_margin_set.zero; bottom_margin = Collapsible_margin_set.zero; margins_can_collapse_through = false; } let from_sizes_and_baselines size content_size first_baselines = { size; content_size; first_baselines; top_margin = Collapsible_margin_set.zero; bottom_margin = Collapsible_margin_set.zero; margins_can_collapse_through = false; } let to_string t = Printf.sprintf "LayoutOutput { size: %s; content_size: %s; margins_can_collapse_through: \ %b }" (Geometry.Size.to_string Float.to_string t.size) (Geometry.Size.to_string Float.to_string t.content_size) t.margins_can_collapse_through let compare a b = let cmp = Geometry.Size.compare Float.compare a.size b.size in if cmp <> 0 then cmp else let cmp = Geometry.Size.compare Float.compare a.content_size b.content_size in if cmp <> 0 then cmp else let cmp = Geometry.Point.compare (Option.compare Float.compare) a.first_baselines b.first_baselines in if cmp <> 0 then cmp else let cmp = Collapsible_margin_set.compare a.top_margin b.top_margin in if cmp <> 0 then cmp else let cmp = Collapsible_margin_set.compare a.bottom_margin b.bottom_margin in if cmp <> 0 then cmp else Bool.compare a.margins_can_collapse_through b.margins_can_collapse_through let equal a b = compare a b = 0 let pp fmt t = Format.pp_print_string fmt (to_string t)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>