# fyne-widgets

A place to put some widgets for super secret projects.  Each has an example in `examples/`. What's in here?

## vumeter

A "progressbar" that displays a VUMeter.  Right now, it's like a progressbar with a different renderer, but it has these extra fields you can mess with to change it's display :

|Field|Type|Effect|Values|
|---|---|---|---|
|OptimumValueMin|float64|Start of the "yellow" range|default:75 (expecting %)|
|OptimumValueMax|float64|End of the "yellow" range|default:85 (expecting %)|
|VUMeterDirection|iota(int64)|Direction of the VUMeter|default: VUMeterHorizontal, alternative  VUMeterVertical  |

## webcam

A webcam component that displays frames from a selected webcam.  Right now, it's based on gocv.io (may change later) and displays a scaled image based on frames from the webcam.  It uses a ticker to update itself at a framerate you can specify. 

!!! Warning gocv is a CGO library that is a PAIN to get working especially with other CGO libraries like portaudio - this is not "just reference the fyne webcam widget and done".  You will almost certainly have to do stuff to your build system to make this work.

Here are the fields you can play with :

|Field|Type|Effect|Values|
|---|---|---|---|
|WebcamID|int64|The numeric ID of the webcam, this may or may not have gaps, there's no way to learn the name of the webcams, and you might or might not find the webcam ¯\\\_(ツ)_/¯|default: 0
|UpdateFPS|int64|FPS for when to get new frames and display them. You might regret setting this higher than your cam can provide.  How do we find out what that is? No idea!|default:25|

## vidplayback

Coming soon!

## bufferedvid

Same general code as vidplayback but buffers the ENTIRE file to allow for seeking.  I do NOT recommend this for general playback but for some purposes, this will suffice.

## floatingControlsLayout

A layout to have floating controls in any of 9 places overlayed onto another widget/container.  Takes exactly **TWO** renderable objects (canvas.Object or descendants) and overlays them so you can have for example, a close button top right of your full-screen app, or a play button in the middle of your video.

|Field|Type|Effect|Values|
|---|---|---|---|
|FloatingControlsLocation|iota|The location to put the controls over|Default: FloatingControlsTopRight Alternatives:FloatingControlsTopLeft / FloatingControlsBottomLeft /	FloatingControlsBottomRight / FloatingControlsCenter / FloatingControlsTopMiddle / FloatingControlsRightMiddle / FloatingControlsBottomMiddle / FloatingControlsLeftMiddle|
