package dialogs import ( "fmt" "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" "github.com/dweymouth/supersonic/res" ) type WhatsNewDialog struct { widget.BaseWidget } func NewWhatsNewDialog() *WhatsNewDialog { w := &WhatsNewDialog{} w.ExtendBaseWidget(w) return w } const donationTextTemplate = `Thank you for using Supersonic! If you're enjoying the app and want to [show your support](%s), donations are always appreciated and help motivate me to continue delivering new features and improvements!` func (w *WhatsNewDialog) CreateRenderer() fyne.WidgetRenderer { donationPrompt := widget.NewRichTextFromMarkdown(fmt.Sprintf(donationTextTemplate, res.KofiURL)) donationPrompt.Wrapping = fyne.TextWrapWord objects := container.NewVBox(donationPrompt) if res.WhatsAdded != "" { added := widget.NewRichTextFromMarkdown(res.WhatsAdded) added.Wrapping = fyne.TextWrapWord objects.Add(added) } if res.WhatsFixed != "" { fixed := widget.NewRichTextFromMarkdown(res.WhatsFixed) fixed.Wrapping = fyne.TextWrapWord objects.Add(fixed) } c := container.NewVScroll(objects) return widget.NewSimpleRenderer(c) } func (w *WhatsNewDialog) MinSize() fyne.Size { return fyne.NewSize(425, 275) }