diff options
| author | Jeff Carr <[email protected]> | 2024-01-01 16:11:54 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-01 16:11:54 -0600 |
| commit | 36218f4535dd65d2c8d4ecbea761b3b0289e6f3c (patch) | |
| tree | 24cf9c64dd518528f30a6282e879e8e5c6136bd4 /andlabs/main.go | |
move into seperate repo
Diffstat (limited to 'andlabs/main.go')
| -rw-r--r-- | andlabs/main.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/andlabs/main.go b/andlabs/main.go new file mode 100644 index 0000000..c1fc7ac --- /dev/null +++ b/andlabs/main.go @@ -0,0 +1,57 @@ +package main + +import ( + "sync" + "go.wit.com/gui/gui/toolkit" + + "github.com/andlabs/ui" + // the _ means we only need this for the init() + _ "github.com/andlabs/ui/winmanifest" +) + +var uiMainUndef bool = true +var uiMain sync.Once +var muAction sync.Mutex + +func catchActionChannel() { + log(logInfo, "catchActionChannel() START") + for { + log(logInfo, "catchActionChannel() for loop") + select { + case a := <-pluginChan: + log(logInfo, "catchActionChannel() SELECT widget id =", a.WidgetId, a.Name) + log(logInfo, "catchActionChannel() STUFF", a.WidgetId, a.ActionType, a.WidgetType) + muAction.Lock() + // TODO ui.QueueMain(f) + // TODO ui.QueueMain( func() {rawAction(a)} ) + ui.QueueMain( func() {rawAction(&a)} ) + // rawAction(a) + muAction.Unlock() + log(logInfo, "catchActionChannel() STUFF END", a.WidgetId, a.ActionType, a.WidgetType) + } + } +} + +// This is important. This sets the defaults for the gui. Without this, there isn't correct padding, etc +func init() { + log(logNow, "Init() START") + log(debugToolkit, "Init()") + // Can you pass values to a plugin init() ? Otherwise, there is no way to safely print + // log(debugToolkit, "init() Setting defaultBehavior = true") + setDefaultBehavior(true) + + + // TODO: this is messed up. run ui.Main() from the first add? Initialize it with an empty thing first? + // fake out the OS toolkit by making a fake window. This is probably needed for macos & windows + // actually, this probably breaks the macos build + go ui.Main(func() { + demoUI() + }) + + // andlabs = make(map[int]*andlabsT) + pluginChan = make(chan toolkit.Action, 1) + + log(logNow, "Init() start channel reciever") + go catchActionChannel() + log(logNow, "Init() END") +} |
