Utilities shared by various UIs

- indexedAnnotatedStreamB :: Point -> BufferM [(Point, Char)]
- applyHeights :: Traversable t => [Int] -> t Window -> t Window
- spliceAnnots :: [(Point, Char)] -> [Span String] -> [(Point, Char)]
- strokePicture :: [Span (Endo a)] -> [(Point, a -> a)]
- paintStrokes :: (a -> a) -> a -> [(Point, a -> a)] -> [(Point, a)] -> [(Point, a)]
- paintPicture :: a -> [[Span (Endo a)]] -> [(Point, a)]
- attributesPictureB :: UIStyle -> Maybe SearchExp -> Region -> [[Span StyleName]] -> BufferM [(Point, Attributes)]
- attributesPictureAndSelB :: UIStyle -> Maybe SearchExp -> Region -> BufferM [(Point, Attributes)]
- arrangeItems :: [String] -> Int -> Int -> [String]
- arrangeItems' :: [String] -> Int -> Int -> (Int, [String])

# Documentation

applyHeights :: Traversable t => [Int] -> t Window -> t WindowSource

strokePicture :: [Span (Endo a)] -> [(Point, a -> a)]Source

Turn a sequence of (from,style,to) strokes into a sequence of picture points (from,style), taking special care to ensure that the points are strictly increasing and introducing padding segments where neccessary. Precondition: Strokes are ordered and not overlapping.

paintStrokes :: (a -> a) -> a -> [(Point, a -> a)] -> [(Point, a)] -> [(Point, a)]Source

Paint the given stroke-picture on top of an existing picture

paintPicture :: a -> [[Span (Endo a)]] -> [(Point, a)]Source

attributesPictureB :: UIStyle -> Maybe SearchExp -> Region -> [[Span StyleName]] -> BufferM [(Point, Attributes)]Source

attributesPictureAndSelB :: UIStyle -> Maybe SearchExp -> Region -> BufferM [(Point, Attributes)]Source