| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Brick.Widgets.Dialog
Description
This module provides a simple dialog widget. You get to pick the dialog title, if any, as well as its body and buttons.
- data Dialog a
- dialogTitle :: Dialog a -> Maybe String
- dialogButtons :: Dialog a -> [(String, a)]
- dialogSelectedIndex :: Dialog a -> Maybe Int
- dialogWidth :: Dialog a -> Int
- dialog :: Maybe String -> Maybe (Int, [(String, a)]) -> Int -> Dialog a
- renderDialog :: Dialog a -> Widget n -> Widget n
- handleDialogEvent :: Event -> Dialog a -> EventM n (Dialog a)
- dialogSelection :: Dialog a -> Maybe a
- dialogAttr :: AttrName
- buttonAttr :: AttrName
- buttonSelectedAttr :: AttrName
- dialogButtonsL :: forall a a. Lens (Dialog a) (Dialog a) [(String, a)] [(String, a)]
- dialogSelectedIndexL :: forall a. Lens' (Dialog a) (Maybe Int)
- dialogWidthL :: forall a. Lens' (Dialog a) Int
- dialogTitleL :: forall a. Lens' (Dialog a) (Maybe String)
Documentation
Dialogs present a window with a title (optional), a body, and
 buttons (optional). They provide a HandleEvent instance that knows
 about Tab and Shift-Tab as well as ArrowLeft and ArrowRight
 for changing which button is active. Dialog
 buttons are labeled with strings and map to values of type a, which
 you choose.
Dialogs handle the following events by default:
- Tab: selecte the next button
- Shift-tab: select the previous button
dialogButtons :: Dialog a -> [(String, a)] Source #
The dialog button labels and values
dialogSelectedIndex :: Dialog a -> Maybe Int Source #
The currently selected dialog button index (if any)
dialogWidth :: Dialog a -> Int Source #
The maximum width of the dialog
Construction and rendering
Arguments
| :: Maybe String | The dialog title | 
| -> Maybe (Int, [(String, a)]) | The currently-selected button index (starting at zero) and the button labels and values to use | 
| -> Int | The maximum width of the dialog | 
| -> Dialog a | 
Create a dialog.
renderDialog :: Dialog a -> Widget n -> Widget n Source #
Render a dialog with the specified body widget. This renders the dialog as a layer, which makes this suitable as a top-level layer in your rendering function to be rendered on top of the rest of your interface.
Handling events
Getting a dialog's current value
dialogSelection :: Dialog a -> Maybe a Source #
Obtain the value associated with the dialog's currently-selected
 button, if any. This function is probably what you want when someone
 presses Enter in a dialog.
Attributes
dialogAttr :: AttrName Source #
The default attribute of the dialog
buttonAttr :: AttrName Source #
The default attribute for all dialog buttons
buttonSelectedAttr :: AttrName Source #
The attribute for the selected dialog button (extends dialogAttr)