top
:: Alignment
Top alignment. |
bottom
:: Alignment
Botton alignment. |
left
:: Alignment
Left alignment. |
right
:: Alignment
Right alignment. |
center1
:: Alignment
Center-top/left alignment. |
center2
:: Alignment
Center-bottom/right alignment. |
nullBox
:: Box
Creates an empty 0x0 box. |
emptyBox
:: Int -> Int -> Box
Creates an empty box with the given size. |
char
:: Char -> Box
Creates a 1x1 box from a character. |
text
:: String -> Box
Creates a Nx1 box from a string of length N. |
(<>)
:: Box -> Box -> Box
Combine two boxes horizontally with top alignment. |
(<+>)
:: Box -> Box -> Box
Combine two boxes horizontally with top alignment and leave one column between the boxes. |
(//)
:: Box -> Box -> Box
Combine two boxes vertically with left alignment. |
(/+/)
:: Box -> Box -> Box
Combine two boxes vertically with left alignment and leave one row between the boxes. |
hcat
:: Alignment -> [Box] -> Box
Combines a list of boxes horizontally with the given alignment. |
hsep
:: Int -> Alignment -> [Box] -> Box
Combines a list of boxes horizontally with the given alignment and space between all boxes. |
vcat
:: Alignment -> [Box] -> Box
Combines a list of boxes vertically with the given alignment. |
sumMax
:: Ord a => (b -> Int) -> a -> (b -> a) -> [b] -> (Int,a)
Calculate sum and maximum of a list. |
vsep
:: Int -> Alignment -> [Box] -> Box
Combines a list of boxes vertically with the given alignment and space between all boxes. |
punctuateH
:: Alignment -> Box -> [Box] -> Box
Combine a list of boxes horizontally with the given alignment and a copy of the given box between each two boxes. |
punctuateV
:: Alignment -> Box -> [Box] -> Box
Combine a list of boxes vertically with the given alignment and a copy of the given box between each two boxes. |
paraFill
:: Alignment -> Int -> String -> Box
|
mkParaBoxFill
:: Alignment -> Int -> Int -> [String] -> Box
|
para
:: Alignment -> Int -> String -> Box
Create a box of the given width, containing a specific text. |
columns
:: Alignment -> Int -> Int -> String -> [Box]
Creates a list of boxes, each of a specific width and height. |
mkParaBox
:: Alignment -> Int -> [String] -> Box
Creates a box of a specific height that contains a list of texts. |
flow
:: Int -> String -> [String]
Flows a given text into a given width, creating many different strings. |
emptyPara
:: Int -> Para
Creates an empty paragraph of the given width. |
getLines
:: Para -> [String]
Returns all lines of a paragraph. |
mkLine
:: [Word] -> Line
Creates a line from a list of words. |
startLine
:: Word -> Line
Creates a line from a single word. |
mkWord
:: String -> Word
Creates a word from a string. |
addWordP
:: Para -> Word -> Para
Adds a word to a paragraph. |
addWordL
:: Word -> Line -> Line
Adds a word to a line. |
wordFits
:: Int -> Word -> Line -> Bool
Checks whether a word fits into a line. |
alignHoriz
:: Alignment -> Int -> Box -> Box
Creates a box of a specific width containing another box's content aligned according to the given alignment. |
alignVert
:: Alignment -> Int -> Box -> Box
Creates a box of a specific height containing another box's content aligned according to the given alignment. |
align
:: Alignment -> Alignment -> Int -> Int -> Box -> Box
Creates a box of a specific width and height containing another box's content aligned according to the given alignment. |
moveUp
:: Int -> Box -> Box
Move a box up by putting it into a larger box with extra rows, aligned to the top. |
moveDown
:: Int -> Box -> Box
Move a box down by putting it into a larger box with extra rows, aligned to the bottom. |
moveLeft
:: Int -> Box -> Box
Move a box left by putting it into a larger box with extra columns, aligned to the left. |
moveRight
:: Int -> Box -> Box
Move a box right by putting it into a larger box with extra columns, aligned to the right. |
table
:: [[String]] -> [Int] -> Box
Create a table from a list of rows. |
render
:: Box -> String
Render a box to a string. |
takeP
:: a -> Int -> [a] -> [a]
Takes a number of elements from a list. |
fReverse
:: ([a],b) -> ([a],b)
|
(***)
:: (a -> b) -> (c -> d) -> (a,c) -> (b,d)
|
takePA
:: Alignment -> a -> Int -> [a] -> [a]
|
blanks
:: Int -> String
Generates a string of spaces. |
renderBox
:: Box -> [String]
Render a box as a list of lines. |
renderBoxWithRows
:: Int -> Box -> [String]
Render a box as a list of lines with a given number of rows. |
renderBoxWithCols
:: Int -> Box -> [String]
Render a box as a list of lines with a given number of columns. |
resizeBox
:: Int -> Int -> [String] -> [String]
Resize a rendered list of lines. |
resizeBoxAligned
:: Int -> Int -> Alignment -> Alignment -> [String] -> [String]
Resize a rendered list of lines using the given alignments. |
printBox
:: Box -> IO ()
Print a box to stdout. |
chunksOf
:: Int -> [a] -> [[a]]
|
sum
:: [Int] -> Int
|
A box has a defined size (rows x cols) and some content.
Constructors:
Box alignment.
Constructors:
AlignFirst
:: Alignment
: align at top/left
AlignCenter1
:: Alignment
: centered, but biased to top/left
AlignCenter2
:: Alignment
: centered, but biased to bottom/right
AlignLast
:: Alignment
: align at bottom/right
Content of a box.
Constructors:
Blank
:: Content
: no content
Text
:: String -> Content
: a string
Row
:: [Box] -> Content
: a row of boxes
Col
:: [Box] -> Content
: a column of boxes
SubBox
:: Alignment -> Alignment -> Box -> Content
: an aligned subbox
A paragraph has a width and some content.
Constructors:
Para
:: Int -> ParaContent -> Para
Fields:
paraWidth
:: Int
paraContent
:: ParaContent
A paragraph's content is a block consisting of many full lines and a single last line.
Constructors:
A line has a length and a list of words.
Constructors:
A word has a length and its contents.
Constructors:
Word
:: Int -> String -> Word
Fields:
wLen
:: Int
getWord
:: String
Top alignment.
|
Botton alignment.
|
Left alignment.
|
Right alignment.
|
Center-top/left alignment.
|
Center-bottom/right alignment.
|
Creates an empty 0x0 box.
|
Creates an empty box with the given size.
|
Creates a 1x1 box from a character.
|
Combine two boxes horizontally with top alignment and leave one column between the boxes. |
Combine two boxes vertically with left alignment and leave one row between the boxes. |
Combines a list of boxes horizontally with the given alignment and space between all boxes. |
Calculate sum and maximum of a list. |
Combines a list of boxes vertically with the given alignment and space between all boxes. |
Combine a list of boxes horizontally with the given alignment and a copy of the given box between each two boxes. |
Combine a list of boxes vertically with the given alignment and a copy of the given box between each two boxes. |
|
Create a box of the given width, containing a specific text. The text is flowed to fit the width according to the alignment.
|
Creates a list of boxes, each of a specific width and height. The given text is flowed into as many columns as necessary according to the given alignment. |
Creates a box of a specific height that contains a list of texts. |
Flows a given text into a given width, creating many different strings. |
Creates an empty paragraph of the given width.
|
Creates a box of a specific width containing another box's content aligned according to the given alignment. |
Creates a box of a specific height containing another box's content aligned according to the given alignment. |
Creates a box of a specific width and height containing another box's content aligned according to the given alignment. |
Move a box up by putting it into a larger box with extra rows, aligned to the top. See remarks for moveLeft. |
Move a box down by putting it into a larger box with extra rows, aligned to the bottom. See remarks for moveLeft. |
Move a box left by putting it into a larger box with extra columns, aligned to the left. Note that this will only move the box by the specified amount if it is already in a larger right-aligned box. |
Move a box right by putting it into a larger box with extra columns, aligned to the right. See remarks for moveRight. |
Create a table from a list of rows. A fixed width for each column must be specified. |
Takes a number of elements from a list. If the list is shorter than that number, fill the rest with a filler. |
|
|
Generates a string of spaces. |
Render a box as a list of lines with a given number of rows. |
Render a box as a list of lines with a given number of columns. |
Resize a rendered list of lines. |
Resize a rendered list of lines using the given alignments. |
|
|