brick-2.9: A declarative terminal user interface library

Safe Haskell | None
Language | Haskell2010

Brick.Widgets.Border

Contents

- Border wrapper
- Horizontal border
- Vertical border
- Drawing single border elements
- Attribute names
- Utility

Description

This module provides border widgets: vertical borders, horizontal borders, and a box border wrapper widget. All functions in this module use the rendering context's active `BorderStyle`; to change the `BorderStyle`, use `withBorderStyle`.

Synopsis

- border :: Widget n -> Widget n
- borderWithLabel :: Widget n -> Widget n -> Widget n
- hBorder :: Widget n
- hBorderWithLabel :: Widget n -> Widget n
- vBorder :: Widget n
- borderElem :: (BorderStyle -> Char) -> Widget n
- borderAttr :: AttrName
- hBorderAttr :: AttrName
- vBorderAttr :: AttrName
- joinableBorder :: Edges Bool -> Widget n

# Border wrapper

border :: Widget n -> Widget n Source #

Put a border around the specified widget.

borderWithLabel Source #

Arguments

:: Widget n | The label widget
-> Widget n | The widget to put a border around
-> Widget n |

Put a border around the specified widget with the specified label widget placed in the middle of the top horizontal border.

Note that a border will wrap its child widget as tightly as possible, which means that if the child widget is narrower than the label widget, the label widget will be truncated. If you want to avoid this behavior, add a `fill` or other space-filling wrapper to the bordered widget so that it takes up enough room to make the border horizontally able to avoid truncating the label.

# Horizontal border

hBorder :: Widget n Source #

A horizontal border. Fills all horizontal space. Draws using `hBorderAttr`.

hBorderWithLabel Source #

Arguments

:: Widget n | The label widget
-> Widget n |

A horizontal border with a label placed in the center of the border. Fills all horizontal space.

# Vertical border

vBorder :: Widget n Source #

A vertical border. Fills all vertical space. Draws using `vBorderAttr`.

# Drawing single border elements

borderElem :: (BorderStyle -> Char) -> Widget n Source #

Draw the specified border element using the active border style using `borderAttr`.

Does not participate in dynamic borders (due to the difficulty of introspecting on the first argument); consider using `joinableBorder` instead.

# Attribute names

borderAttr :: AttrName Source #

The top-level border attribute name.

hBorderAttr :: AttrName Source #

The horizontal border attribute name. Inherits from `borderAttr`.

vBorderAttr :: AttrName Source #

The vertical border attribute name. Inherits from `borderAttr`.

# Utility

joinableBorder :: Edges Bool -> Widget n Source #

A single-character dynamic border that will react to neighboring borders, initially connecting in the given directions.