packages feed

brick 2.0 → 2.1

raw patch · 6 files changed

+40/−16 lines, 6 filesdep +vty-unixdep ~microlensPVP ok

version bump matches the API change (PVP)

Dependencies added: vty-unix

Dependency ranges changed: microlens

API changes (from Hackage documentation)

+ Brick.Main: customMainWithDefaultVty :: Ord n => Maybe (BChan e) -> App s e n -> s -> IO (s, Vty)
- Brick.BorderMap: eBottomL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.BorderMap: eBottomL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.BorderMap: eLeftL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.BorderMap: eLeftL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.BorderMap: eRightL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.BorderMap: eRightL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.BorderMap: eTopL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.BorderMap: eTopL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.Types: availHeightL :: forall n_azaX. Lens' (Context n_azaX) Int
+ Brick.Types: availHeightL :: forall n_awxS. Lens' (Context n_awxS) Int
- Brick.Types: availWidthL :: forall n_azaX. Lens' (Context n_azaX) Int
+ Brick.Types: availWidthL :: forall n_awxS. Lens' (Context n_awxS) Int
- Brick.Types: bordersL :: forall n_azb1. Lens' (Result n_azb1) (BorderMap DynBorder)
+ Brick.Types: bordersL :: forall n_awxW. Lens' (Result n_awxW) (BorderMap DynBorder)
- Brick.Types: ctxAttrMapL :: forall n_azaX. Lens' (Context n_azaX) AttrMap
+ Brick.Types: ctxAttrMapL :: forall n_awxS. Lens' (Context n_awxS) AttrMap
- Brick.Types: ctxAttrNameL :: forall n_azaX. Lens' (Context n_azaX) AttrName
+ Brick.Types: ctxAttrNameL :: forall n_awxS. Lens' (Context n_awxS) AttrName
- Brick.Types: ctxBorderStyleL :: forall n_azaX. Lens' (Context n_azaX) BorderStyle
+ Brick.Types: ctxBorderStyleL :: forall n_awxS. Lens' (Context n_awxS) BorderStyle
- Brick.Types: ctxDynBordersL :: forall n_azaX. Lens' (Context n_azaX) Bool
+ Brick.Types: ctxDynBordersL :: forall n_awxS. Lens' (Context n_awxS) Bool
- Brick.Types: ctxHScrollBarOrientationL :: forall n_azaX. Lens' (Context n_azaX) (Maybe HScrollBarOrientation)
+ Brick.Types: ctxHScrollBarOrientationL :: forall n_awxS. Lens' (Context n_awxS) (Maybe HScrollBarOrientation)
- Brick.Types: ctxHScrollBarRendererL :: forall n_azaX. Lens' (Context n_azaX) (Maybe (HScrollbarRenderer n_azaX))
+ Brick.Types: ctxHScrollBarRendererL :: forall n_awxS. Lens' (Context n_awxS) (Maybe (HScrollbarRenderer n_awxS))
- Brick.Types: ctxVScrollBarOrientationL :: forall n_azaX. Lens' (Context n_azaX) (Maybe VScrollBarOrientation)
+ Brick.Types: ctxVScrollBarOrientationL :: forall n_awxS. Lens' (Context n_awxS) (Maybe VScrollBarOrientation)
- Brick.Types: ctxVScrollBarRendererL :: forall n_azaX. Lens' (Context n_azaX) (Maybe (VScrollbarRenderer n_azaX))
+ Brick.Types: ctxVScrollBarRendererL :: forall n_awxS. Lens' (Context n_awxS) (Maybe (VScrollbarRenderer n_awxS))
- Brick.Types: cursorLocationL :: forall n_azb2. Lens' (CursorLocation n_azb2) Location
+ Brick.Types: cursorLocationL :: forall n_awxX. Lens' (CursorLocation n_awxX) Location
- Brick.Types: cursorLocationNameL :: forall n_azb2 n_aBBt. Lens (CursorLocation n_azb2) (CursorLocation n_aBBt) (Maybe n_azb2) (Maybe n_aBBt)
+ Brick.Types: cursorLocationNameL :: forall n_awxX n_az7z. Lens (CursorLocation n_awxX) (CursorLocation n_az7z) (Maybe n_awxX) (Maybe n_az7z)
- Brick.Types: cursorsL :: forall n_azb1. Lens' (Result n_azb1) [CursorLocation n_azb1]
+ Brick.Types: cursorsL :: forall n_awxW. Lens' (Result n_awxW) [CursorLocation n_awxW]
- Brick.Types: eBottomL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.Types: eBottomL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.Types: eLeftL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.Types: eLeftL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.Types: eRightL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.Types: eRightL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.Types: eTopL :: forall a_aeFw. Lens' (Edges a_aeFw) a_aeFw
+ Brick.Types: eTopL :: forall a_agjP. Lens' (Edges a_agjP) a_agjP
- Brick.Types: extentsL :: forall n_azb1. Lens' (Result n_azb1) [Extent n_azb1]
+ Brick.Types: extentsL :: forall n_awxW. Lens' (Result n_awxW) [Extent n_awxW]
- Brick.Types: imageL :: forall n_azb1. Lens' (Result n_azb1) Image
+ Brick.Types: imageL :: forall n_awxW. Lens' (Result n_awxW) Image
- Brick.Types: visibilityRequestsL :: forall n_azb1. Lens' (Result n_azb1) [VisibilityRequest]
+ Brick.Types: visibilityRequestsL :: forall n_awxW. Lens' (Result n_awxW) [VisibilityRequest]
- Brick.Types: windowHeightL :: forall n_azaX. Lens' (Context n_azaX) Int
+ Brick.Types: windowHeightL :: forall n_awxS. Lens' (Context n_awxS) Int
- Brick.Types: windowWidthL :: forall n_azaX. Lens' (Context n_azaX) Int
+ Brick.Types: windowWidthL :: forall n_awxS. Lens' (Context n_awxS) Int
- Brick.Widgets.Dialog: dialogButtonsL :: forall a_a1lef n_a1leg a_a1lf3. Lens (Dialog a_a1lef n_a1leg) (Dialog a_a1lf3 n_a1leg) [(String, n_a1leg, a_a1lef)] [(String, n_a1leg, a_a1lf3)]
+ Brick.Widgets.Dialog: dialogButtonsL :: forall a_a1riV n_a1riW a_a1rjT. Lens (Dialog a_a1riV n_a1riW) (Dialog a_a1rjT n_a1riW) [(String, n_a1riW, a_a1riV)] [(String, n_a1riW, a_a1rjT)]
- Brick.Widgets.Dialog: dialogTitleL :: forall a_a1lef n_a1leg. Lens' (Dialog a_a1lef n_a1leg) (Maybe (Widget n_a1leg))
+ Brick.Widgets.Dialog: dialogTitleL :: forall a_a1riV n_a1riW. Lens' (Dialog a_a1riV n_a1riW) (Maybe (Widget n_a1riW))
- Brick.Widgets.Dialog: dialogWidthL :: forall a_a1lef n_a1leg. Lens' (Dialog a_a1lef n_a1leg) Int
+ Brick.Widgets.Dialog: dialogWidthL :: forall a_a1riV n_a1riW. Lens' (Dialog a_a1riV n_a1riW) Int
- Brick.Widgets.Edit: editContentsL :: forall t_a1ewE n_a1ewF t_a1exj. Lens (Editor t_a1ewE n_a1ewF) (Editor t_a1exj n_a1ewF) (TextZipper t_a1ewE) (TextZipper t_a1exj)
+ Brick.Widgets.Edit: editContentsL :: forall t_a1jrt n_a1jru t_a1jse. Lens (Editor t_a1jrt n_a1jru) (Editor t_a1jse n_a1jru) (TextZipper t_a1jrt) (TextZipper t_a1jse)
- Brick.Widgets.FileBrowser: fileBrowserEntriesG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) (List n_a1wth FileInfo)
+ Brick.Widgets.FileBrowser: fileBrowserEntriesG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) (List n_a1E0y FileInfo)
- Brick.Widgets.FileBrowser: fileBrowserEntryFilterG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) (Maybe (FileInfo -> Bool))
+ Brick.Widgets.FileBrowser: fileBrowserEntryFilterG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) (Maybe (FileInfo -> Bool))
- Brick.Widgets.FileBrowser: fileBrowserExceptionG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) (Maybe IOException)
+ Brick.Widgets.FileBrowser: fileBrowserExceptionG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) (Maybe IOException)
- Brick.Widgets.FileBrowser: fileBrowserLatestResultsG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) [FileInfo]
+ Brick.Widgets.FileBrowser: fileBrowserLatestResultsG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) [FileInfo]
- Brick.Widgets.FileBrowser: fileBrowserNameG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) n_a1wth
+ Brick.Widgets.FileBrowser: fileBrowserNameG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) n_a1E0y
- Brick.Widgets.FileBrowser: fileBrowserSearchStringG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) (Maybe Text)
+ Brick.Widgets.FileBrowser: fileBrowserSearchStringG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) (Maybe Text)
- Brick.Widgets.FileBrowser: fileBrowserSelectableG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) (FileInfo -> Bool)
+ Brick.Widgets.FileBrowser: fileBrowserSelectableG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) (FileInfo -> Bool)
- Brick.Widgets.FileBrowser: fileBrowserSelectableL :: forall n_a1wth. Lens' (FileBrowser n_a1wth) (FileInfo -> Bool)
+ Brick.Widgets.FileBrowser: fileBrowserSelectableL :: forall n_a1E0y. Lens' (FileBrowser n_a1E0y) (FileInfo -> Bool)
- Brick.Widgets.FileBrowser: fileBrowserSelectedFilesG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) (Set String)
+ Brick.Widgets.FileBrowser: fileBrowserSelectedFilesG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) (Set String)
- Brick.Widgets.FileBrowser: fileBrowserWorkingDirectoryG :: forall n_a1wth. SimpleGetter (FileBrowser n_a1wth) FilePath
+ Brick.Widgets.FileBrowser: fileBrowserWorkingDirectoryG :: forall n_a1E0y. SimpleGetter (FileBrowser n_a1E0y) FilePath
- Brick.Widgets.List: listElementsL :: forall n_a1r20 t_a1r21 e_a1r22 t_a1rhe e_a1rhf. Lens (GenericList n_a1r20 t_a1r21 e_a1r22) (GenericList n_a1r20 t_a1rhe e_a1rhf) (t_a1r21 e_a1r22) (t_a1rhe e_a1rhf)
+ Brick.Widgets.List: listElementsL :: forall n_a1xDF t_a1xDG e_a1xDH t_a1xTg e_a1xTh. Lens (GenericList n_a1xDF t_a1xDG e_a1xDH) (GenericList n_a1xDF t_a1xTg e_a1xTh) (t_a1xDG e_a1xDH) (t_a1xTg e_a1xTh)
- Brick.Widgets.List: listItemHeightL :: forall n_a1r20 t_a1r21 e_a1r22. Lens' (GenericList n_a1r20 t_a1r21 e_a1r22) Int
+ Brick.Widgets.List: listItemHeightL :: forall n_a1xDF t_a1xDG e_a1xDH. Lens' (GenericList n_a1xDF t_a1xDG e_a1xDH) Int
- Brick.Widgets.List: listNameL :: forall n_a1r20 t_a1r21 e_a1r22 n_a1rhg. Lens (GenericList n_a1r20 t_a1r21 e_a1r22) (GenericList n_a1rhg t_a1r21 e_a1r22) n_a1r20 n_a1rhg
+ Brick.Widgets.List: listNameL :: forall n_a1xDF t_a1xDG e_a1xDH n_a1xTi. Lens (GenericList n_a1xDF t_a1xDG e_a1xDH) (GenericList n_a1xTi t_a1xDG e_a1xDH) n_a1xDF n_a1xTi
- Brick.Widgets.List: listSelectedL :: forall n_a1r20 t_a1r21 e_a1r22. Lens' (GenericList n_a1r20 t_a1r21 e_a1r22) (Maybe Int)
+ Brick.Widgets.List: listSelectedL :: forall n_a1xDF t_a1xDG e_a1xDH. Lens' (GenericList n_a1xDF t_a1xDG e_a1xDH) (Maybe Int)

Files

CHANGELOG.md view
@@ -2,6 +2,14 @@ Brick changelog --------------- +2.1+---++API changes:++* Added `Brick.Main.customMainWithDefaultVty` as an alternative way to+  initialize Brick.+ 2.0 --- 
brick.cabal view
@@ -1,5 +1,5 @@ name:                brick-version:             2.0+version:             2.1 synopsis:            A declarative terminal user interface library description:   Write terminal user interfaces (TUIs) painlessly with 'brick'! You@@ -94,7 +94,7 @@     Brick.Types.Internal     Brick.Widgets.Internal -  build-depends:       base >= 4.9.0.0 && < 4.19.0.0,+  build-depends:       base >= 4.9.0.0 && < 4.21.0.0,                        vty >= 6.0,                        vty-crossplatform,                        bimap >= 0.5 && < 0.6,@@ -113,7 +113,7 @@                        text,                        text-zipper >= 0.13,                        template-haskell,-                       deepseq >= 1.3 && < 1.5,+                       deepseq >= 1.3 && < 1.6,                        unix-compat,                        bytestring,                        word-wrap >= 0.2@@ -453,7 +453,6 @@   build-depends:       base,                        brick,                        vty,-                       vty-crossplatform,                        text,                        microlens >= 0.3.0.0,                        microlens-th,@@ -576,4 +575,5 @@                        microlens,                        vector,                        vty,+                       vty-unix,                        QuickCheck
programs/CustomEventDemo.hs view
@@ -12,13 +12,12 @@ import Data.Monoid #endif import qualified Graphics.Vty as V-import Graphics.Vty.CrossPlatform (mkVty)  import Brick.BChan import Brick.Main   ( App(..)   , showFirstCursor-  , customMain+  , customMainWithDefaultVty   , halt   ) import Brick.AttrMap@@ -83,6 +82,4 @@         writeBChan chan Counter         threadDelay 1000000 -    let buildVty = mkVty V.defaultConfig-    initialVty <- buildVty-    void $ customMain initialVty buildVty (Just chan) theApp initialState+    void $ customMainWithDefaultVty (Just chan) theApp initialState
programs/TailDemo.hs view
@@ -143,10 +143,9 @@  main :: IO () main = do-    vty <- mkVty V.defaultConfig     chan <- newBChan 10      -- Run thread to simulate incoming data     void $ forkIO $ generateLines chan -    void $ customMain vty (mkVty V.defaultConfig) (Just chan) app initialState+    void $ customMainWithDefaultVty (Just chan) app initialState
src/Brick/Main.hs view
@@ -5,6 +5,7 @@   , defaultMain   , customMain   , customMainWithVty+  , customMainWithDefaultVty   , simpleMain   , resizeOrQuit   , simpleApp@@ -130,10 +131,8 @@             -> s             -- ^ The initial application state.             -> IO s-defaultMain app st = do-    let builder = mkVty defaultConfig-    initialVty <- builder-    customMain initialVty builder Nothing app st+defaultMain app st =+    fst <$> customMainWithDefaultVty Nothing app st  -- | A simple main entry point which takes a widget and renders it. This -- event loop terminates when the user presses any key, but terminal@@ -234,6 +233,25 @@     shutdown vty     restoreInitialState     return s++-- | Like 'customMainWithVty', except that Vty is initialized with the+-- default configuration.+customMainWithDefaultVty :: (Ord n)+                         => Maybe (BChan e)+                         -- ^ An event channel for sending custom+                         -- events to the event loop (you write to this+                         -- channel, the event loop reads from it).+                         -- Provide 'Nothing' if you don't plan on+                         -- sending custom events.+                         -> App s e n+                         -- ^ The application.+                         -> s+                         -- ^ The initial application state.+                         -> IO (s, Vty)+customMainWithDefaultVty mUserChan app initialAppState = do+    let builder = mkVty defaultConfig+    vty <- builder+    customMainWithVty vty builder mUserChan app initialAppState  -- | Like 'customMain', except the last 'Vty' handle used by the -- application is returned without being shut down with 'shutdown'. This
tests/Render.hs view
@@ -10,6 +10,8 @@ import Data.Monoid #endif import qualified Graphics.Vty as V+import qualified Graphics.Vty.Platform.Unix.Output as VU+import qualified Graphics.Vty.Platform.Unix.Settings as VU import Brick.Widgets.Border (hBorder) import Control.Exception (SomeException, try) @@ -18,7 +20,7 @@  renderDisplay :: Ord n => [Widget n] -> IO () renderDisplay ws = do-    outp <- V.outputForConfig V.defaultConfig+    outp <- VU.buildOutput =<< VU.defaultSettings     ctx <- V.displayContext outp region     V.outputPicture ctx (renderWidget Nothing ws region)     V.releaseDisplay outp