diff --git a/wdgt_spinner.go b/wdgt_spinner.go index a63054e..81d79f8 100644 --- a/wdgt_spinner.go +++ b/wdgt_spinner.go @@ -37,6 +37,8 @@ type Spinner struct { lastTick time.Time tickInterval time.Duration keyMap *KeyMap + + visible bool } var _ Widget = (*Spinner)(nil) @@ -70,34 +72,37 @@ func (w *Spinner) HandleTime(ev *tcell.EventTime) { } func (w *Spinner) Draw(screen tcell.Screen) { + if !w.visible { + return + } screen.SetContent(w.x, w.y, w.frames[w.currentFrame], nil, w.style) } func (w *Spinner) Active() bool { return false } func (w *Spinner) SetActive(a bool) {} -func (w *Spinner) Visible() bool { return true } -func (w *Spinner) SetVisible(v bool) {} +func (w *Spinner) Visible() bool { return w.visible } +func (w *Spinner) SetVisible(v bool) { w.visible = v } func (w *Spinner) Focusable() bool { return false } func (w *Spinner) SetFocusable(t bool) {} -func (w *Spinner) SetX(x int) {} -func (w *Spinner) SetY(y int) {} +func (w *Spinner) SetX(x int) { w.x = x } +func (w *Spinner) SetY(y int) { w.y = y } func (w *Spinner) GetX() int { return w.x } func (w *Spinner) GetY() int { return w.y } func (w *Spinner) GetPos() Coord { return Coord{X: w.x, Y: w.y} } -func (w *Spinner) SetPos(pos Coord) {} +func (w *Spinner) SetPos(pos Coord) { w.x, w.y = pos.X, pos.Y } func (w *Spinner) SetSize(size Coord) {} func (w *Spinner) SetW(wd int) {} func (w *Spinner) SetH(h int) {} -func (w *Spinner) GetW() int { return 0 } -func (w *Spinner) GetH() int { return 0 } -func (w *Spinner) WantW() int { return 0 } -func (w *Spinner) WantH() int { return 0 } -func (w *Spinner) MinW() int { return 0 } -func (w *Spinner) MinH() int { return 0 } +func (w *Spinner) GetW() int { return 1 } +func (w *Spinner) GetH() int { return 1 } +func (w *Spinner) WantW() int { return 1 } +func (w *Spinner) WantH() int { return 1 } +func (w *Spinner) MinW() int { return 1 } +func (w *Spinner) MinH() int { return 1 } func (w *Spinner) SetFrames(frames []rune) { w.frames = frames w.currentFrame = 0 } -func (w *Spinner) SetTickInterface(d time.Duration) { w.tickInterval = d } +func (w *Spinner) SetTickInterval(d time.Duration) { w.tickInterval = d }