module Graphics.Layout.Grid where data Grid n = Grid { rows :: [(Name, Either n Double)], columns :: [(Name, Either n Double)], gap :: Size n, gridBox :: PaddedBox n } data GridItem n = Grid { startRow :: Int, endRow :: Int, startCol :: Int, endCol :: Int, gridItemBox :: PaddedBox n } sizeBoundGrid :: Grid Length -> [GridItem Length] -> Grid Length sizeGrid :: PaddedBox Double -> Grid Length -> Grid Double sizeGridItem :: Grid Length -> GridItem Length -> Grid Double positionGrid :: Grid Double -> [GridItem Double] -> [Size] layoutGrid :: PaddedBox Double -> Grid Length -> [GridItem Length] -> Bool -> [(Grid Double, [(Size, GridItem Double)])]