Module Compound

type sizing = {
  1. height : float option;
  2. share : float;
  3. scaled : bool;
}
type t =
  1. | Part of Component.part
  2. | Column of t list
  3. | Row of t list
  4. | Sized of sizing * t
type path = int list
val gap : float
val layout : t -> left:float -> top:float -> width:float -> (path * Widget.box) list * float
val at_point : (path * Widget.box) list -> (float * float) -> path option
type splitter = {
  1. row : path;
  2. index : int;
  3. grip : Widget.box;
  4. span : float * float;
}
val splitters : t -> left:float -> top:float -> width:float -> splitter list
val set_height : t -> path -> float option -> t
val scaled : t -> path -> bool
val set_scaled : t -> path -> bool -> t
val resize_row : t -> path -> int -> float -> t
val get : t -> path -> Component.part option
val set : t -> path -> Component.part -> t
val insert_after : t -> path -> t -> t
val remove : t -> path -> t
val save : t -> string
val load : Component.registry -> string -> t