| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Brick.Widgets.List
Description
This module provides a scrollable list type and functions for manipulating and rendering it.
- data List n e
- list :: n -> Vector e -> Int -> List n e
- renderList :: (Ord n, Show n) => (Bool -> e -> Widget n) -> Bool -> List n e -> Widget n
- handleListEvent :: Ord n => Event -> List n e -> EventM n (List n e)
- listElementsL :: forall n e e. Lens (List n e) (List n e) (Vector e) (Vector e)
- listSelectedL :: forall n e. Lens' (List n e) (Maybe Int)
- listNameL :: forall n e n. Lens (List n e) (List n e) n n
- listItemHeightL :: forall n e. Lens' (List n e) Int
- listMoveBy :: Int -> List n e -> List n e
- listMoveTo :: Int -> List n e -> List n e
- listMoveUp :: List n e -> List n e
- listMoveDown :: List n e -> List n e
- listInsert :: Int -> e -> List n e -> List n e
- listRemove :: Int -> List n e -> List n e
- listReplace :: Vector e -> Maybe Int -> List n e -> List n e
- listSelectedElement :: List n e -> Maybe (Int, e)
- listClear :: List n e -> List n e
- listReverse :: List n e -> List n e
- listModify :: (e -> e) -> List n e -> List n e
- listAttr :: AttrName
- listSelectedAttr :: AttrName
- listSelectedFocusedAttr :: AttrName
Documentation
List state. Lists have an element type e that is the data stored
 by the list.  Lists handle the following events by default:
- Up/down arrow keys: move cursor of selected item
- Page up / page down keys: move cursor of selected item by one page at a time (based on the number of items shown)
- Home/end keys: move cursor of selected item to beginning or end of list
Constructing a list
Arguments
| :: n | The list name (must be unique) | 
| -> Vector e | The initial list contents | 
| -> Int | The list item height in rows (all list item widgets must be this high) | 
| -> List n e | 
Construct a list in terms of an element type e.
Rendering a list
Arguments
| :: (Ord n, Show n) | |
| => (Bool -> e -> Widget n) | Rendering function, True for the selected element | 
| -> Bool | Whether the list has focus | 
| -> List n e | The List to be rendered | 
| -> Widget n | rendered widget | 
Turn a list state value into a widget given an item drawing function.
Handling events
Lenses
Manipulating a list
listMoveBy :: Int -> List n e -> List n e Source #
Move the list selected index by the specified amount, subject to validation.
listMoveTo :: Int -> List n e -> List n e Source #
Set the selected index for a list to the specified index, subject to validation.
listMoveUp :: List n e -> List n e Source #
Move the list selected index up by one. (Moves the cursor up, subtracts one from the index.)
listMoveDown :: List n e -> List n e Source #
Move the list selected index down by one. (Moves the cursor down, adds one to the index.)
Arguments
| :: Int | The position at which to insert (0 <= i <= size) | 
| -> e | The element to insert | 
| -> List n e | |
| -> List n e | 
Insert an item into a list at the specified position.
Remove an element from a list at the specified position.
listReplace :: Vector e -> Maybe Int -> List n e -> List n e Source #
Replace the contents of a list with a new set of elements and
 update the new selected index. If the list is empty, empty selection is used
 instead. Otherwise, if the specified selected index (via Just) is not in
 the list bounds, zero is used instead.
listClear :: List n e -> List n e Source #
Remove all elements from the list and clear the selection.
listReverse :: List n e -> List n e Source #
Reverse the list. The element selected before the reversal will again be the selected one.
listModify :: (e -> e) -> List n e -> List n e Source #
Apply a function to the selected element. If no element is selected the list is not modified.
Attributes
listSelectedAttr :: AttrName Source #
The attribute used only for the currently-selected list item when
 the list does not have focus. Extends listAttr.
listSelectedFocusedAttr :: AttrName Source #
The attribute used only for the currently-selected list item when
 the list has focus. Extends listSelectedAttr.