about summary refs log tree commit diff stats
path: root/ui/helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/helpers.go')
-rw-r--r--ui/helpers.go30
1 files changed, 25 insertions, 5 deletions
diff --git a/ui/helpers.go b/ui/helpers.go
index 0b8789e..f2b2adf 100644
--- a/ui/helpers.go
+++ b/ui/helpers.go
@@ -9,13 +9,33 @@ import (
 func TPrintf(geo *Geometry, ref tb.Cell, format string, a ...interface{}) {
 	str := fmt.Sprintf(format, a...)
 	_geo := *geo
+	newline := func() {
+		// TODO: Abort when out of room?
+		geo.Col = _geo.Col
+		geo.Row++
+	}
 	for _, ch := range str {
-		tb.SetCell(geo.Col, geo.Row, ch, ref.Fg, ref.Bg)
-		geo.Col++
-		if geo.Col == _geo.Col+geo.Width {
-			// TODO: Abort when out of room?
+		switch ch {
+		case '\n':
+			newline()
+		case '\r':
 			geo.Col = _geo.Col
-			geo.Row++
+		default:
+			tb.SetCell(geo.Col, geo.Row, ch, ref.Fg, ref.Bg)
+			geo.Col++
+			if geo.Col == _geo.Col+geo.Width {
+				newline()
+			}
+		}
+	}
+}
+
+func TFill(geo Geometry, ref tb.Cell) {
+	_geo := geo
+	for ; geo.Row < geo.Height; geo.Row++ {
+		for ; geo.Col < geo.Width; geo.Col++ {
+			tb.SetCell(geo.Col, geo.Row, ref.Ch, ref.Fg, ref.Bg)
 		}
+		geo.Col = _geo.Col
 	}
 }