brick 0.52.1 → 0.53
raw patch · 4 files changed
+21/−8 lines, 4 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
- Brick.BorderMap: eBottomL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.BorderMap: eBottomL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.BorderMap: eLeftL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.BorderMap: eLeftL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.BorderMap: eRightL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.BorderMap: eRightL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.BorderMap: eTopL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.BorderMap: eTopL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.Types: bordersL :: forall n_aGK9. Lens' (Result n_aGK9) (BorderMap DynBorder)
+ Brick.Types: bordersL :: forall n_aGKp. Lens' (Result n_aGKp) (BorderMap DynBorder)
- Brick.Types: cursorLocationL :: forall n_aFoK. Lens' (CursorLocation n_aFoK) Location
+ Brick.Types: cursorLocationL :: forall n_aFp0. Lens' (CursorLocation n_aFp0) Location
- Brick.Types: cursorLocationNameL :: forall n_aFoK n_aHnl. Lens (CursorLocation n_aFoK) (CursorLocation n_aHnl) (Maybe n_aFoK) (Maybe n_aHnl)
+ Brick.Types: cursorLocationNameL :: forall n_aFp0 n_aHnB. Lens (CursorLocation n_aFp0) (CursorLocation n_aHnB) (Maybe n_aFp0) (Maybe n_aHnB)
- Brick.Types: cursorsL :: forall n_aGK9. Lens' (Result n_aGK9) [CursorLocation n_aGK9]
+ Brick.Types: cursorsL :: forall n_aGKp. Lens' (Result n_aGKp) [CursorLocation n_aGKp]
- Brick.Types: eBottomL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.Types: eBottomL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.Types: eLeftL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.Types: eLeftL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.Types: eRightL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.Types: eRightL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.Types: eTopL :: forall a_ajBs. Lens' (Edges a_ajBs) a_ajBs
+ Brick.Types: eTopL :: forall a_ajBI. Lens' (Edges a_ajBI) a_ajBI
- Brick.Types: extentsL :: forall n_aGK9. Lens' (Result n_aGK9) [Extent n_aGK9]
+ Brick.Types: extentsL :: forall n_aGKp. Lens' (Result n_aGKp) [Extent n_aGKp]
- Brick.Types: imageL :: forall n_aGK9. Lens' (Result n_aGK9) Image
+ Brick.Types: imageL :: forall n_aGKp. Lens' (Result n_aGKp) Image
- Brick.Types: visibilityRequestsL :: forall n_aGK9. Lens' (Result n_aGK9) [VisibilityRequest]
+ Brick.Types: visibilityRequestsL :: forall n_aGKp. Lens' (Result n_aGKp) [VisibilityRequest]
- Brick.Widgets.Dialog: dialogButtonsL :: forall a_a1hue a_a1huV. Lens (Dialog a_a1hue) (Dialog a_a1huV) [(String, a_a1hue)] [(String, a_a1huV)]
+ Brick.Widgets.Dialog: dialogButtonsL :: forall a_a1htK a_a1hur. Lens (Dialog a_a1htK) (Dialog a_a1hur) [(String, a_a1htK)] [(String, a_a1hur)]
- Brick.Widgets.Dialog: dialogSelectedIndexL :: forall a_a1hue. Lens' (Dialog a_a1hue) (Maybe Int)
+ Brick.Widgets.Dialog: dialogSelectedIndexL :: forall a_a1htK. Lens' (Dialog a_a1htK) (Maybe Int)
- Brick.Widgets.Dialog: dialogTitleL :: forall a_a1hue. Lens' (Dialog a_a1hue) (Maybe String)
+ Brick.Widgets.Dialog: dialogTitleL :: forall a_a1htK. Lens' (Dialog a_a1htK) (Maybe String)
- Brick.Widgets.Dialog: dialogWidthL :: forall a_a1hue. Lens' (Dialog a_a1hue) Int
+ Brick.Widgets.Dialog: dialogWidthL :: forall a_a1htK. Lens' (Dialog a_a1htK) Int
- Brick.Widgets.Edit: editContentsL :: forall t_a1coG n_a1coH t_a1cpq. Lens (Editor t_a1coG n_a1coH) (Editor t_a1cpq n_a1coH) (TextZipper t_a1coG) (TextZipper t_a1cpq)
+ Brick.Widgets.Edit: editContentsL :: forall t_a1coc n_a1cod t_a1coW. Lens (Editor t_a1coc n_a1cod) (Editor t_a1coW n_a1cod) (TextZipper t_a1coc) (TextZipper t_a1coW)
- Brick.Widgets.FileBrowser: fileBrowserEntryFilterL :: forall n_a1rUL. Lens' (FileBrowser n_a1rUL) (Maybe (FileInfo -> Bool))
+ Brick.Widgets.FileBrowser: fileBrowserEntryFilterL :: forall n_a1rUh. Lens' (FileBrowser n_a1rUh) (Maybe (FileInfo -> Bool))
- Brick.Widgets.FileBrowser: fileBrowserSelectableL :: forall n_a1rUL. Lens' (FileBrowser n_a1rUL) (FileInfo -> Bool)
+ Brick.Widgets.FileBrowser: fileBrowserSelectableL :: forall n_a1rUh. Lens' (FileBrowser n_a1rUh) (FileInfo -> Bool)
- Brick.Widgets.List: listElementsL :: forall n_a1my7 t_a1my8 e_a1my9 t_a1mMH e_a1mMI. Lens (GenericList n_a1my7 t_a1my8 e_a1my9) (GenericList n_a1my7 t_a1mMH e_a1mMI) (t_a1my8 e_a1my9) (t_a1mMH e_a1mMI)
+ Brick.Widgets.List: listElementsL :: forall n_a1mxD t_a1mxE e_a1mxF t_a1mMd e_a1mMe. Lens (GenericList n_a1mxD t_a1mxE e_a1mxF) (GenericList n_a1mxD t_a1mMd e_a1mMe) (t_a1mxE e_a1mxF) (t_a1mMd e_a1mMe)
- Brick.Widgets.List: listItemHeightL :: forall n_a1my7 t_a1my8 e_a1my9. Lens' (GenericList n_a1my7 t_a1my8 e_a1my9) Int
+ Brick.Widgets.List: listItemHeightL :: forall n_a1mxD t_a1mxE e_a1mxF. Lens' (GenericList n_a1mxD t_a1mxE e_a1mxF) Int
- Brick.Widgets.List: listNameL :: forall n_a1my7 t_a1my8 e_a1my9 n_a1mMJ. Lens (GenericList n_a1my7 t_a1my8 e_a1my9) (GenericList n_a1mMJ t_a1my8 e_a1my9) n_a1my7 n_a1mMJ
+ Brick.Widgets.List: listNameL :: forall n_a1mxD t_a1mxE e_a1mxF n_a1mMf. Lens (GenericList n_a1mxD t_a1mxE e_a1mxF) (GenericList n_a1mMf t_a1mxE e_a1mxF) n_a1mxD n_a1mMf
- Brick.Widgets.List: listSelectedL :: forall n_a1my7 t_a1my8 e_a1my9. Lens' (GenericList n_a1my7 t_a1my8 e_a1my9) (Maybe Int)
+ Brick.Widgets.List: listSelectedL :: forall n_a1mxD t_a1mxE e_a1mxF. Lens' (GenericList n_a1mxD t_a1mxE e_a1mxF) (Maybe Int)
Files
- CHANGELOG.md +14/−0
- README.md +1/−0
- brick.cabal +2/−2
- src/Brick/Widgets/Core.hs +4/−6
CHANGELOG.md view
@@ -2,6 +2,20 @@ Brick changelog --------------- +0.53+----++Package changes:+ * Relaxed base bounds to allow building with GHC 8.10 (thanks Joshua+ Chia)++Bug fixes:+ * `vLimitPercent`: use correct horizontal size policy from child+ (thanks Janek Spaderna)+ * `str`: be more aggressive in determining how many characters to+ display (attempt to display as many zero-width characters as+ possible)+ 0.52.1 ------
README.md view
@@ -61,6 +61,7 @@ * [`solitaire`](https://github.com/ambuc/solitaire), the card game * [`sudoku-tui`](https://github.com/evanrelf/sudoku-tui), a Sudoku implementation * [`summoner-tui`](https://github.com/kowainik/summoner/tree/master/summoner-tui), an interactive frontend to the Summoner tool+ * [`wrapping-editor`](https://github.com/ta0kira/wrapping-editor), an embeddable editor with support for Brick These third-party packages also extend `brick`:
brick.cabal view
@@ -1,5 +1,5 @@ name: brick-version: 0.52.1+version: 0.53 synopsis: A declarative terminal user interface library description: Write terminal user interfaces (TUIs) painlessly with 'brick'! You@@ -113,7 +113,7 @@ Brick.Types.Internal Brick.Widgets.Internal - build-depends: base <= 4.13.0.0,+ build-depends: base <= 4.14.0.0, vty >= 5.24, transformers, data-clist >= 0.1,
src/Brick/Widgets/Core.hs view
@@ -236,11 +236,9 @@ takeColumns _ "" = "" takeColumns numCols (c:cs) = let w = V.safeWcwidth c- in if w == numCols- then [c]- else if w < numCols- then c : takeColumns (numCols - w) cs- else ""+ in if w > numCols+ then []+ else c : takeColumns (numCols - w) cs -- | Make a widget from a string, but wrap the words in the input's -- lines at the available width using the default wrapping settings. The@@ -807,7 +805,7 @@ -- defers to the limited widget horizontally. vLimitPercent :: Int -> Widget n -> Widget n vLimitPercent h' p =- Widget (vSize p) Fixed $ do+ Widget (hSize p) Fixed $ do let h = clamp 0 100 h' ctx <- getContext let usableHeight = ctx^.availHeightL