diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 36 |
1 files changed, 35 insertions, 1 deletions
@@ -2,7 +2,7 @@ package gui import ( "os" - // "embed" // reminder to not attempt this within the 'wit/gui' package + "embed" "git.wit.org/wit/gui/toolkit" ) @@ -126,6 +126,40 @@ func (n *Node) doUserEvent(a toolkit.Action) { } } +func (n *Node) InitEmbed(resFS embed.FS) *Node { + Config.resFS = resFS + return n +} + +func (n *Node) LoadToolkitEmbed(name string, b []byte) *Node { + for _, aplug := range allPlugins { + log(logInfo, "LoadToolkitEmbed() already loaded toolkit plugin =", aplug.name) + if (aplug.name == name) { + log(logError, "LoadToolkitEmbed() SKIPPING", name, "as you can't load it twice") + return n + } + } + + f, err := os.CreateTemp("", "sample." + name + ".so") + if (err != nil) { + return n + } + defer os.Remove(f.Name()) + f.Write(b) + + p := initToolkit(name, f.Name()) + if (p == nil) { + log(logError, "LoadToolkitEmbed() embedded go file failed", name) + } + return n +} + +func (n *Node) ListToolkits() { + for _, aplug := range allPlugins { + log(logNow, "ListToolkits() already loaded toolkit plugin =", aplug.name) + } +} + func (n *Node) LoadToolkit(name string) *Node { log(logInfo, "LoadToolkit() START for name =", name) plug := initPlugin(name) |
