Copyright | (c) Tim Docker 2010, 2014 |
---|---|

License | BSD-style (see chart/COPYRIGHT) |

Safe Haskell | None |

Language | Haskell98 |

A container type for values that can be composed by horizonal and vertical layout.

- data Grid a
- type Span = (Int, Int)
- type SpaceWeight = (Double, Double)
- tval :: a -> Grid a
- tspan :: a -> Span -> Grid a
- empty :: Grid a
- nullt :: Grid a
- (.|.) :: Grid a -> Grid a -> Grid a
- (./.) :: Grid a -> Grid a -> Grid a
- above :: Grid a -> Grid a -> Grid a
- aboveN :: [Grid a] -> Grid a
- beside :: Grid a -> Grid a -> Grid a
- besideN :: [Grid a] -> Grid a
- overlay :: Grid a -> Grid a -> Grid a
- width :: Grid a -> Int
- height :: Grid a -> Int
- gridToRenderable :: Grid (Renderable a) -> Renderable a
- weights :: SpaceWeight -> Grid a -> Grid a
- aboveWide :: Grid a -> a -> Grid a
- wideAbove :: a -> Grid a -> Grid a
- tallBeside :: a -> Grid a -> Grid a
- besideTall :: Grid a -> a -> Grid a
- fullOverlayUnder :: a -> Grid a -> Grid a
- fullOverlayOver :: a -> Grid a -> Grid a

# Documentation

Abstract datatype representing a grid.

Functor Grid | |

Show a => Show (Grid a) | |

ToRenderable a => ToRenderable (Grid a) |

type SpaceWeight = (Double, Double) Source

When more space is available for an item than the total width of items, extra added space is proportional to 'space weight'.

tspan :: a -> Span -> Grid a Source

A WxH (measured in cells) grid from a given value, with space weight (1,1).

overlay :: Grid a -> Grid a -> Grid a Source

One grid over the other. The first argument is shallow, the second is deep.

gridToRenderable :: Grid (Renderable a) -> Renderable a Source

weights :: SpaceWeight -> Grid a -> Grid a Source

Sets the space weight of *every* cell of the grid to given value.

aboveWide :: Grid a -> a -> Grid a Source

A value placed below the grid, occupying 1 row with the same horizontal span as the grid.

wideAbove :: a -> Grid a -> Grid a Source

A value occupying 1 row with the same horizontal span as the grid.

tallBeside :: a -> Grid a -> Grid a Source

A value placed to the left of the grid, occupying 1 column with the same vertical span as the grid.

besideTall :: Grid a -> a -> Grid a Source

A value placed to the right of the grid, occupying 1 column with the same vertical span as the grid.

fullOverlayUnder :: a -> Grid a -> Grid a Source

A value placed under a grid, with the same span as the grid.

fullOverlayOver :: a -> Grid a -> Grid a Source

A value placed over a grid, with the same span as the grid.