diff options
| author | Jeff Carr <[email protected]> | 2023-04-11 15:25:03 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-04-11 15:25:03 -0500 |
| commit | 874e0beffad469f713d0435524e0a2f12dcfd978 (patch) | |
| tree | d3e97b958aaa73b8f1c754ee30a856b72ec9f5cf /toolkit/andlabs/updateui.go | |
| parent | b24cc5898604191df7bfc2cacd7bc5043fa14a42 (diff) | |
andlabs is broken
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'toolkit/andlabs/updateui.go')
| -rw-r--r-- | toolkit/andlabs/updateui.go | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/toolkit/andlabs/updateui.go b/toolkit/andlabs/updateui.go new file mode 100644 index 0000000..4752d67 --- /dev/null +++ b/toolkit/andlabs/updateui.go @@ -0,0 +1,96 @@ +package main + +import ( + "github.com/andlabs/ui" +) + +// Example showing how to update the UI using the QueueMain function +// especially if the update is coming from another goroutine +// +// see QueueMain in 'main.go' for detailed description + +var count int + +func demoUI() { + mainWindow := ui.NewWindow("libui Updating UI", 640, 480, true) + mainWindow.OnClosing(func(*ui.Window) bool { + ui.Quit() + return true + }) + ui.OnShouldQuit(func() bool { + mainWindow.Destroy() + return true + }) + + vbContainer := ui.NewVerticalBox() + vbContainer.SetPadded(true) + + inputGroup := ui.NewGroup("Input") + inputGroup.SetMargined(true) + + vbInput := ui.NewVerticalBox() + vbInput.SetPadded(true) + + inputForm := ui.NewForm() + inputForm.SetPadded(true) + + message := ui.NewEntry() + message.SetText("Hello World") + inputForm.Append("What message do you want to show?", message, false) + + showMessageButton := ui.NewButton("Show message") + clearMessageButton := ui.NewButton("Clear message") + + vbInput.Append(inputForm, false) + vbInput.Append(showMessageButton, false) + vbInput.Append(clearMessageButton, false) + + inputGroup.SetChild(vbInput) + + messageGroup := ui.NewGroup("Message") + messageGroup.SetMargined(true) + + vbMessage := ui.NewVerticalBox() + vbMessage.SetPadded(true) + + messageLabel := ui.NewLabel("") + + vbMessage.Append(messageLabel, false) + + messageGroup.SetChild(vbMessage) + + countGroup := ui.NewGroup("Counter") + countGroup.SetMargined(true) + + vbCounter := ui.NewVerticalBox() + vbCounter.SetPadded(true) + + countLabel := ui.NewLabel("blah") + + vbCounter.Append(countLabel, false) + countGroup.SetChild(vbCounter) + + vbContainer.Append(inputGroup, false) + vbContainer.Append(messageGroup, false) + vbContainer.Append(countGroup, false) + + mainWindow.SetChild(vbContainer) + + showMessageButton.OnClicked(func(*ui.Button) { + // Update the UI directly as it is called from the main thread + messageLabel.SetText(message.Text()) + }) + + clearMessageButton.OnClicked(func(*ui.Button) { + // Update the UI directly as it is called from the main thread + messageLabel.SetText("") + }) + + mainWindow.Show() +} + +/* +func main() { + ui.Main(setupUI) +} +*/ |
