cursor-brick-0.1.0.0: src/Cursor/Brick/TextField.hs
module Cursor.Brick.TextField where
import Cursor.List.NonEmpty
import Cursor.TextField
import Brick.Types as Brick
import Brick.Widgets.Core as Brick
import Cursor.Brick.Text
-- | Make a textfield cursor widget with a blink-y box.
--
-- This function does not wrap lines.
-- Otherwise, because of the way indexes work, there would be rendering errors for text that crosses the side of the terminal.
selectedTextFieldCursorWidget :: n -> TextFieldCursor -> Widget n
selectedTextFieldCursorWidget n (TextFieldCursor tfc) =
flip foldNonEmptyCursor tfc $ \befores current afters ->
vBox $
concat
[ map textWidget befores
, [selectedTextCursorWidget n current]
, map textWidget afters
]
-- | Make a textfield cursor widget without a blink-y box.
--
-- This function does not wrap lines .
textFieldCursorWidget :: TextFieldCursor -> Widget n
textFieldCursorWidget (TextFieldCursor tfc) =
flip foldNonEmptyCursor tfc $ \befores current afters ->
vBox $
concat
[ map textWidget befores
, [textCursorWidget current]
, map textWidget afters
]