1 package uiterm // import "layeh.com/barnard/uiterm"
7 "github.com/nsf/termbox-go"
14 Input func(ui *Ui, textbox *Textbox, text string)
21 func (t *Textbox) uiInitialize(ui *Ui) {
25 func (t *Textbox) uiSetActive(active bool) {
30 func (t *Textbox) uiSetBounds(x0, y0, x1, y1 int) {
38 func (t *Textbox) uiDraw() {
43 reader := strings.NewReader(t.Text)
44 for y := t.y0; y < t.y1; y++ {
45 for x := t.x0; x < t.x1; x++ {
47 if ch, _, err := reader.ReadRune(); err != nil {
48 if t.active && !setCursor {
49 termbox.SetCursor(x, y)
56 termbox.SetCell(x, y, chr, termbox.Attribute(t.Fg), termbox.Attribute(t.Bg))
61 func (t *Textbox) uiKeyEvent(mod Modifier, key Key) {
69 t.Input(t.ui, t, t.Text)
79 if r, size := utf8.DecodeLastRuneInString(t.Text); r != utf8.RuneError {
80 t.Text = t.Text[:len(t.Text)-size]
90 func (t *Textbox) uiCharacterEvent(chr rune) {
91 t.Text = t.Text + string(chr)