cursor-brick-0.1.0.0: src/Cursor/Brick/Map.hs
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Cursor.Brick.Map where
import Cursor.Map
import Brick.Types
import Brick.Widgets.Core
horizontalMapCursorWidget ::
(k -> v -> Widget n)
-> (KeyValueCursor kc vc k v -> Widget n)
-> (k -> v -> Widget n)
-> MapCursor kc vc k v
-> Widget n
horizontalMapCursorWidget beforeFunc curFunc afterFunc =
mapCursorWidget $ \befores current afters ->
hBox $
concat
[ map (uncurry beforeFunc) befores
, [curFunc current]
, map (uncurry afterFunc) afters
]
horizontalMapCursorWidgetM ::
Applicative f
=> (k -> v -> f (Widget n))
-> (KeyValueCursor kc vc k v -> f (Widget n))
-> (k -> v -> f (Widget n))
-> MapCursor kc vc k v
-> f (Widget n)
horizontalMapCursorWidgetM beforeFunc curFunc afterFunc =
mapCursorWidgetM $ \befores current afters ->
hBox <$>
sequenceA
(concat
[ map (uncurry beforeFunc) befores
, [curFunc current]
, map (uncurry afterFunc) afters
])
verticalMapCursorWidget ::
(k -> v -> Widget n)
-> (KeyValueCursor kc vc k v -> Widget n)
-> (k -> v -> Widget n)
-> MapCursor kc vc k v
-> Widget n
verticalMapCursorWidget beforeFunc curFunc afterFunc =
mapCursorWidget $ \befores current afters ->
vBox $
concat
[ map (uncurry beforeFunc) befores
, [curFunc current]
, map (uncurry afterFunc) afters
]
verticalMapCursorWidgetM ::
Applicative f
=> (k -> v -> f (Widget n))
-> (KeyValueCursor kc vc k v -> f (Widget n))
-> (k -> v -> f (Widget n))
-> MapCursor kc vc k v
-> f (Widget n)
verticalMapCursorWidgetM beforeFunc curFunc afterFunc =
mapCursorWidgetM $ \befores current afters ->
vBox <$>
sequenceA
(concat
[ map (uncurry beforeFunc) befores
, [curFunc current]
, map (uncurry afterFunc) afters
])
mapCursorWidget ::
([(k, v)] -> KeyValueCursor kc vc k v -> [(k, v)] -> Widget n)
-> MapCursor kc vc k v
-> Widget n
mapCursorWidget = foldMapCursor
mapCursorWidgetM ::
([(k, v)] -> KeyValueCursor kc vc k v -> [(k, v)] -> m (Widget n))
-> MapCursor kc vc k v
-> m (Widget n)
mapCursorWidgetM = foldMapCursor