{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} module Cursor.Brick.Forest where import Cursor.Forest import Cursor.Tree import Brick.Types import Cursor.Brick.List.NonEmpty horizontalForestCursorWidgetM :: Monad m => (CTree b -> m (Widget n)) -> (TreeCursor a b -> m (Widget n)) -> (CTree b -> m (Widget n)) -> ForestCursor a b -> m (Widget n) horizontalForestCursorWidgetM prevFunc curFunc nextFunc = horizontalNonEmptyCursorWidgetM prevFunc curFunc nextFunc . forestCursorListCursor horizontalForestCursorWidget :: (CTree b -> Widget n) -> (TreeCursor a b -> Widget n) -> (CTree b -> Widget n) -> ForestCursor a b -> Widget n horizontalForestCursorWidget prevFunc curFunc nextFunc = horizontalNonEmptyCursorWidget prevFunc curFunc nextFunc . forestCursorListCursor verticalForestCursorWidgetM :: Monad m => (CTree b -> m (Widget n)) -> (TreeCursor a b -> m (Widget n)) -> (CTree b -> m (Widget n)) -> ForestCursor a b -> m (Widget n) verticalForestCursorWidgetM prevFunc curFunc nextFunc = verticalNonEmptyCursorWidgetM prevFunc curFunc nextFunc . forestCursorListCursor verticalForestCursorWidget :: (CTree b -> Widget n) -> (TreeCursor a b -> Widget n) -> (CTree b -> Widget n) -> ForestCursor a b -> Widget n verticalForestCursorWidget prevFunc curFunc nextFunc = verticalNonEmptyCursorWidget prevFunc curFunc nextFunc . forestCursorListCursor forestCursorWidgetM :: ([CTree b] -> TreeCursor a b -> [CTree b] -> m (Widget n)) -> ForestCursor a b -> m (Widget n) forestCursorWidgetM = foldForestCursor forestCursorWidget :: ([CTree b] -> TreeCursor a b -> [CTree b] -> Widget n) -> ForestCursor a b -> Widget n forestCursorWidget = foldForestCursor