Handle status bar spanning multiple lines (relevant for the Tmux network sim)

This commit is contained in:
Zahary Karadjov 2020-02-04 23:59:02 +01:00 committed by zah
parent ef29e11976
commit a620c83916
2 changed files with 15 additions and 12 deletions

View File

@ -87,20 +87,23 @@ proc render*(s: var StatusBarView) =
let
termWidth = terminalWidth()
allCellsWidth = s.layout.cellsLeft.width + s.layout.cellsRight.width
centerPadding = max(0, termWidth - allCellsWidth)
if allCellsWidth > 0:
stdout.setBackgroundColor backgroundColor
stdout.setForegroundColor foregroundColor
renderCells(s.layout.cellsLeft, sepLeft)
stdout.write spaces(centerPadding)
if termWidth > allCellsWidth:
stdout.write spaces(termWidth - allCellsWidth)
s.consumedLines = 1
else:
stdout.write spaces(max(0, termWidth - s.layout.cellsLeft.width)), "\p"
s.consumedLines = 2
renderCells(s.layout.cellsRight, sepRight)
stdout.resetAttributes
stdout.flushFile
s.consumedLines = 1
proc erase*(s: var StatusBarView) =
# cursorUp()
for i in 1 ..< s.consumedLines: cursorUp()
for i in 0 ..< s.consumedLines: eraseLine()
s.consumedLines = 0

2
vendor/nim-eth vendored

@ -1 +1 @@
Subproject commit 1756f7b41f738df1e5775ede635cd9a1e0fcd990
Subproject commit 9b40b662872274975f22fd20dab321fd434017c6