package convertor import ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/canvas" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" ) type ProgressBarContract interface { GetContainer() *fyne.Container } type progressBar struct { container *fyne.Container label *widget.Label progressbar *widget.ProgressBar errorBlock *container.Scroll messageError *canvas.Text statusMessage *canvas.Text buttonPlay *widget.Button } func NewProgressBar() ProgressBarContract { label := widget.NewLabel("") progressbar := widget.NewProgressBar() statusMessage := canvas.NewText("", theme.Color(theme.ColorNamePrimary)) messageError := canvas.NewText("", theme.Color(theme.ColorNameError)) buttonPlay := widget.NewButtonWithIcon("", theme.Icon(theme.IconNameMediaPlay), func() { }) buttonPlay.Hide() errorBlock := container.NewHScroll(messageError) errorBlock.Hide() content := container.NewVBox( container.NewHScroll(label), progressbar, container.NewHScroll(container.NewHBox( buttonPlay, statusMessage, )), errorBlock, ) content.Hide() return &progressBar{ container: content, label: label, progressbar: progressbar, errorBlock: errorBlock, messageError: messageError, statusMessage: statusMessage, buttonPlay: buttonPlay, } } func (p *progressBar) GetContainer() *fyne.Container { return p.container }