]> git.0d.be Git - barnard.git/blobdiff - uiterm/textbox.go
move barnard main package to package root
[barnard.git] / uiterm / textbox.go
index cda0c41c6561060dba0319b446ebf88f028588b4..a7d0d4d943c6b8df2f67a5f0f41067669221fd06 100644 (file)
@@ -8,9 +8,8 @@ import (
 )
 
 type Textbox struct {
-       Text string
-       Fg   Attribute
-       Bg   Attribute
+       Text   string
+       Fg, Bg Attribute
 
        Input func(ui *Ui, textbox *Textbox, text string)
 
@@ -25,6 +24,7 @@ func (t *Textbox) uiInitialize(ui *Ui) {
 
 func (t *Textbox) uiSetActive(active bool) {
        t.active = active
+       t.uiDraw()
 }
 
 func (t *Textbox) uiSetBounds(x0, y0, x1, y1 int) {
@@ -32,9 +32,13 @@ func (t *Textbox) uiSetBounds(x0, y0, x1, y1 int) {
        t.y0 = y0
        t.x1 = x1
        t.y1 = y1
+       t.uiDraw()
 }
 
 func (t *Textbox) uiDraw() {
+       t.ui.beginDraw()
+       defer t.ui.endDraw()
+
        var setCursor = false
        reader := strings.NewReader(t.Text)
        for y := t.y0; y < t.y1; y++ {
@@ -80,12 +84,10 @@ func (t *Textbox) uiKeyEvent(mod Modifier, key Key) {
        }
        if redraw {
                t.uiDraw()
-               termbox.Flush()
        }
 }
 
 func (t *Textbox) uiCharacterEvent(chr rune) {
        t.Text = t.Text + string(chr)
        t.uiDraw()
-       termbox.Flush()
 }