|
- package uiterm // import "layeh.com/barnard/uiterm"
-
- import (
- "strings"
-
- "github.com/nsf/termbox-go"
- )
-
- type Label struct {
- Text string
- Fg, Bg Attribute
-
- ui *Ui
- x0, y0, x1, y1 int
- }
-
- func (l *Label) uiInitialize(ui *Ui) {
- l.ui = ui
- }
-
- func (l *Label) uiSetActive(active bool) {
- }
-
- func (l *Label) uiSetBounds(x0, y0, x1, y1 int) {
- l.x0 = x0
- l.y0 = y0
- l.x1 = x1
- l.y1 = y1
- l.uiDraw()
- }
-
- func (l *Label) uiDraw() {
- l.ui.beginDraw()
- defer l.ui.endDraw()
-
- reader := strings.NewReader(l.Text)
- for y := l.y0; y < l.y1; y++ {
- for x := l.x0; x < l.x1; x++ {
- var chr rune
- if ch, _, err := reader.ReadRune(); err != nil {
- chr = ' '
- } else {
- chr = ch
- }
- termbox.SetCell(x, y, chr, termbox.Attribute(l.Fg), termbox.Attribute(l.Bg))
- }
- }
- }
-
- func (l *Label) uiKeyEvent(mod Modifier, key Key) {
- }
-
- func (l *Label) uiCharacterEvent(chr rune) {
- }
|