2021-01-10 21:52:29 +01:00
|
|
|
package tui
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/gdamore/tcell"
|
|
|
|
)
|
|
|
|
|
2022-04-01 20:10:51 +02:00
|
|
|
func drawBuffer(scr tcell.Screen, buf *ViewBuffer) {
|
2022-04-02 13:01:41 +02:00
|
|
|
// buf.ForEach(func(x, y int, rn Rune) {
|
|
|
|
// scr.SetContent(x, y, rn.Rn, nil, rn.Style)
|
|
|
|
// })
|
|
|
|
|
2022-04-03 16:29:01 +02:00
|
|
|
// TODO use runewidth.RuneWidth(rn)?
|
2022-04-02 13:01:41 +02:00
|
|
|
buf.ForEachLine(func(y int, content []Rune) {
|
|
|
|
for x := 0; x < buf.Width(); x++ {
|
|
|
|
rn := content[x]
|
|
|
|
if rn.Rn >= '─' && rn.Rn <= '╿' {
|
|
|
|
scr.SetContent(x, y, rn.Rn, []rune{content[x+1].Rn}, rn.Style)
|
|
|
|
x++
|
|
|
|
} else {
|
|
|
|
scr.SetContent(x, y, rn.Rn, nil, rn.Style)
|
|
|
|
}
|
|
|
|
}
|
2021-01-10 21:52:29 +01:00
|
|
|
})
|
2022-04-02 13:01:41 +02:00
|
|
|
|
2021-01-10 21:52:29 +01:00
|
|
|
scr.Show()
|
|
|
|
}
|
2022-04-02 13:01:41 +02:00
|
|
|
|
|
|
|
func truncateBuffer(buf *ViewBuffer, w, h int) *ViewBuffer {
|
|
|
|
if w < 0 {
|
|
|
|
w = buf.Width()
|
|
|
|
}
|
|
|
|
if h < 0 {
|
|
|
|
h = buf.Height()
|
|
|
|
}
|
|
|
|
return buf.Sub(0, 0, w, h)
|
|
|
|
}
|