package main import ( "strconv" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" "git.martyn.berlin/martyn/fyne-widgets/pkg/gocvwebcam" "git.martyn.berlin/martyn/fyne-widgets/pkg/layouts" ) var gocvWebcamID int var gocvWebcamLabel *widget.Label var gocvWebcamWidget *gocvwebcam.GocvWebcam func switchGocvWebcam(id int) { gocvWebcamLabel.Text = "GocvWebcam: " + strconv.Itoa(id) gocvWebcamLabel.Refresh() gocvWebcamWidget.GocvWebcamID = int64(id) gocvWebcamWidget.Refresh() } func incWebCamID() { gocvWebcamID = gocvWebcamID + 1 switchGocvWebcam(gocvWebcamID) } func decWebCamID() { gocvWebcamID = gocvWebcamID - 1 switchGocvWebcam(gocvWebcamID) } func main() { a := app.New() w := a.NewWindow("GocvWebcam") gocvWebcamWidget = gocvwebcam.NewGocvWebcam() layout := layouts.NewFloatingControlsLayout() layout.FloatingControlsLocation = layouts.FloatingControlsCenter gocvWebcamID = 0 gocvWebcamWidget.UpdateFPS = 50 gocvWebcamLabel = widget.NewLabel("Webcam: 0") buttons := container.NewHBox(gocvWebcamLabel, widget.NewButton("-", decWebCamID), widget.NewButton("+", incWebCamID)) w.SetContent(container.New(&layout, gocvWebcamWidget, buttons)) w.Resize(fyne.NewSize(640, 480)) w.ShowAndRun() }