32 lines
842 B
Go
32 lines
842 B
Go
|
package tui
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
// WriteString writes a whole string to the buffer at position (x,y)
|
||
|
// no word wrap is applied at all. If the string does not fit, it will be truncated
|
||
|
func WriteString(b *ViewBuffer, str string, style Style, x, y int) {
|
||
|
dx := x
|
||
|
for _, r := range str {
|
||
|
if dx >= b.Width() {
|
||
|
return
|
||
|
}
|
||
|
b.Set(dx, y, Rune{r, style})
|
||
|
dx++
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// WriteMultiLineString writes a multi-line string to the buffer at position (x,y)
|
||
|
// no word wrap is applied at all. If a line does not fit horizontally, it will be truncated
|
||
|
// All lines which do not fit vertically will be truncated as well
|
||
|
func WriteMultiLineString(b *ViewBuffer, str string, style Style, x, y int) {
|
||
|
lines := strings.Split(str, "\n")
|
||
|
for dy, line := range lines {
|
||
|
if dy >= b.Height() {
|
||
|
return
|
||
|
}
|
||
|
WriteString(b, line, style, x, y+dy)
|
||
|
}
|
||
|
}
|