brick-0.1: A declarative terminal user interface library

Safe HaskellNone
LanguageHaskell2010

Brick.Widgets.List

Contents

Description

This module provides a scrollable list type and functions for manipulating and rendering it.

Synopsis

Documentation

data List e Source

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

Instances

Consructing a list

list Source

Arguments

:: Name

The list name (must be unique)

-> (Bool -> e -> Widget)

The item rendering function (takes the item and whether it is currently selected)

-> [e]

The initial list contents

-> List e 

Construct a list in terms of an element type e.

Rendering a list

renderList :: List e -> Widget Source

Turn a list state value into a widget.

Lenses

listElementsL :: forall e. Lens' (List e) [e] Source

listSelectedL :: forall e. Lens' (List e) (Maybe Int) Source

listNameL :: forall e. Lens' (List e) Name Source

Manipulating a list

listMoveBy :: Int -> List e -> List e Source

Move the list selected index by the specified amount, subject to validation.

listMoveTo :: Int -> List e -> List e Source

Set the selected index for a list to the specified index, subject to validation.

listMoveUp :: List e -> List e Source

Move the list selected index up by one. (Moves the cursor up, subtracts one from the index.)

listMoveDown :: List e -> List e Source

Move the list selected index down by one. (Moves the cursor down, adds one to the index.)

listInsert Source

Arguments

:: Int

The position at which to insert (0 <= i <= size)

-> e

The element to insert

-> List e 
-> List e 

Insert an item into a list at the specified position.

listRemove Source

Arguments

:: Int

The position at which to remove an element (0 <= i < size)

-> List e 
-> List e 

Remove an element from a list at the specified position.

listReplace :: Eq e => [e] -> List e -> List e Source

Replace the contents of a list with a new set of elements but preserve the currently selected index.

listSelectedElement :: List e -> Maybe (Int, e) Source

Return a list's selected element, if any.

Attributes

listAttr :: AttrName Source

The top-level attribute used for the entire list.

listSelectedAttr :: AttrName Source

The attribute used only for the currently-selected list item. Extends listAttr.