splitHorizontal function

({Rectangle left, Rectangle right}) splitHorizontal(
  1. Rectangle area,
  2. Constraint c
)

Splits area horizontally into left/right.

Upstream: SplitHorizontal in third_party/ultraviolet/layout.go.

Implementation

({Rectangle left, Rectangle right}) splitHorizontal(
  Rectangle area,
  Constraint c,
) {
  final width = (c.apply(area.width) < area.width)
      ? c.apply(area.width)
      : area.width;
  final left = Rectangle(
    minX: area.minX,
    minY: area.minY,
    maxX: area.minX + width,
    maxY: area.maxY,
  );
  final right = Rectangle(
    minX: area.minX + width,
    minY: area.minY,
    maxX: area.maxX,
    maxY: area.maxY,
  );
  return (left: left, right: right);
}