make waveform seekbar non-interactive when stopped / playing radio
This commit is contained in:
@@ -121,6 +121,7 @@ func NewPlayerControls(useWaveformSeekbar bool) *PlayerControls {
|
|||||||
pc.slider = NewTrackPosSlider()
|
pc.slider = NewTrackPosSlider()
|
||||||
pc.slider.Disable()
|
pc.slider.Disable()
|
||||||
pc.waveform = NewWaveformSeekbar()
|
pc.waveform = NewWaveformSeekbar()
|
||||||
|
pc.waveform.Disable()
|
||||||
if useWaveformSeekbar {
|
if useWaveformSeekbar {
|
||||||
pc.slider.Hidden = true
|
pc.slider.Hidden = true
|
||||||
} else {
|
} else {
|
||||||
@@ -206,8 +207,10 @@ func (pc *PlayerControls) UpdatePlayTime(curTime, totalTime float64) {
|
|||||||
}
|
}
|
||||||
if totalTime > 0 {
|
if totalTime > 0 {
|
||||||
pc.slider.Enable()
|
pc.slider.Enable()
|
||||||
|
pc.waveform.Enable()
|
||||||
} else {
|
} else {
|
||||||
pc.slider.Disable()
|
pc.slider.Disable()
|
||||||
|
pc.waveform.Disable()
|
||||||
}
|
}
|
||||||
if !pc.slider.IsDragging() {
|
if !pc.slider.IsDragging() {
|
||||||
ct := util.SecondsToMMSS(curTime)
|
ct := util.SecondsToMMSS(curTime)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type WaveformSeekbar struct {
|
type WaveformSeekbar struct {
|
||||||
widget.BaseWidget
|
widget.DisableableWidget
|
||||||
|
|
||||||
OnSeeked func(float64)
|
OnSeeked func(float64)
|
||||||
|
|
||||||
@@ -59,6 +59,9 @@ func (w *WaveformSeekbar) Refresh() {
|
|||||||
var _ desktop.Hoverable = (*WaveformSeekbar)(nil)
|
var _ desktop.Hoverable = (*WaveformSeekbar)(nil)
|
||||||
|
|
||||||
func (w *WaveformSeekbar) MouseIn(e *desktop.MouseEvent) {
|
func (w *WaveformSeekbar) MouseIn(e *desktop.MouseEvent) {
|
||||||
|
if w.Disabled() {
|
||||||
|
return
|
||||||
|
}
|
||||||
prm, fg := w.getThemeColors()
|
prm, fg := w.getThemeColors()
|
||||||
w.recolorCursor(prm, fg, e.Position.X)
|
w.recolorCursor(prm, fg, e.Position.X)
|
||||||
w.cursor.Resize(fyne.NewSize(1, w.Size().Height-4))
|
w.cursor.Resize(fyne.NewSize(1, w.Size().Height-4))
|
||||||
@@ -67,6 +70,9 @@ func (w *WaveformSeekbar) MouseIn(e *desktop.MouseEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (w *WaveformSeekbar) MouseMoved(e *desktop.MouseEvent) {
|
func (w *WaveformSeekbar) MouseMoved(e *desktop.MouseEvent) {
|
||||||
|
if w.Disabled() {
|
||||||
|
return
|
||||||
|
}
|
||||||
prm, fg := w.getThemeColors()
|
prm, fg := w.getThemeColors()
|
||||||
w.recolorCursor(prm, fg, e.Position.X)
|
w.recolorCursor(prm, fg, e.Position.X)
|
||||||
w.cursor.Move(fyne.NewPos(e.Position.X, 2))
|
w.cursor.Move(fyne.NewPos(e.Position.X, 2))
|
||||||
@@ -79,7 +85,7 @@ func (w *WaveformSeekbar) MouseOut() {
|
|||||||
var _ fyne.Tappable = (*WaveformSeekbar)(nil)
|
var _ fyne.Tappable = (*WaveformSeekbar)(nil)
|
||||||
|
|
||||||
func (w *WaveformSeekbar) Tapped(e *fyne.PointEvent) {
|
func (w *WaveformSeekbar) Tapped(e *fyne.PointEvent) {
|
||||||
if w.OnSeeked != nil {
|
if !w.Disabled() && w.OnSeeked != nil {
|
||||||
w.OnSeeked(float64(e.Position.X / w.Size().Width))
|
w.OnSeeked(float64(e.Position.X / w.Size().Width))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user