A focus ring containing a sequence of resource names to focus and a currently-focused name.
Modulebrick-2.10Haskell2010
Brick.Focus
This module provides a type and functions for handling focus rings of values.
- 1 type
- 10 values
- Packagebrick-2.10
- Exports11
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceFocus.hs
Construct a focus ring from the list of resource names.
Advance focus to the next value in the ring.
Advance focus to the previous value in the ring.
Get the currently-focused resource name from the ring. If the ring is empty, return Nothing.
Set the currently-focused resource name in the ring, provided the name is in the ring. Otherwise return the ring unmodified.
Get the size of the FocusRing.
Return all of the entries in the focus ring, starting with the currently-focused entry and wrapping around the ring.
For example, if a ring contains A, B, C, and D, and the current entry is B, the result will be [B, C, D, A].
focusRingCursor :: Eq n=> (a -> FocusRing n)The function used to get the focus ring out of your application state.
-> aYour application state.
-> [CursorLocation n]The list of available cursor positions.
-> Maybe (CursorLocation n)The cursor position, if any, that matches the resource name currently focused by the FocusRing.
Cursor selection convenience function for use as an appChooseCursor value.
withFocusRing This function is a convenience function to look up a widget state value's resource name in a focus ring and set its focus setting according to the focus ring's state. This function determines whether a given widget state value is the focus of the ring and passes the resulting boolean to a rendering function, along with the state value (a), to produce whatever comes next (b).
Focus-aware widgets have rendering functions that should be
usable with this combinator; see List and
Brick.Widgets.Edit.Edit.
Modify the internal circular list structure of a focus ring directly. This function permits modification of the circular list using the rich Data.CircularList API.