summaryrefslogtreecommitdiff
path: root/treeInit.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-14 18:11:19 -0600
committerJeff Carr <[email protected]>2025-02-14 18:11:19 -0600
commita83ca26ac3380be410cd8aaceef7b6a2c7d2701a (patch)
tree28e5cf62e8cd216b50e1d1bbdc3e3b758b0f67cb /treeInit.go
parentc4e48c6403936c7f5d1f60d590fc3a91fecdc83d (diff)
Diffstat (limited to 'treeInit.go')
-rw-r--r--treeInit.go72
1 files changed, 72 insertions, 0 deletions
diff --git a/treeInit.go b/treeInit.go
new file mode 100644
index 0000000..78ff4fb
--- /dev/null
+++ b/treeInit.go
@@ -0,0 +1,72 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+/*
+ DO NOT EDIT THIS FILE
+
+ this file is the same for every GUI toolkit plugin
+ when you are making a new GUI toolkit plugin for
+ a specific toolkit, you just need to define these
+ functions.
+
+ for example, in the "gocui" toolkit, the functions
+ below are what triggers the "gocui" GO package
+ to draw labels, buttons, windows, etc
+
+ If you are starting out trying to make a new GUI toolkit,
+ all you have to do is copy this file over. Then
+ work on making these functions. addWidget(), setText(), etc.
+
+ That's it!
+*/
+
+package main
+
+/*
+ This is reference code for toolkit developers
+
+ This is how information is passed in GO back to the application
+ via the GO 'plugin' concept
+
+ TODO: switch this to protocol buffers
+*/
+
+import (
+ "go.wit.com/toolkits/tree"
+ "go.wit.com/widget"
+)
+
+// Other goroutines must use this to access the GUI
+//
+// You can not acess / process the GUI thread directly from
+// other goroutines. This is due to the nature of how
+// Linux, MacOS and Windows work (they all work differently. suprise. surprise.)
+//
+// this sets the channel to send user events back from the plugin
+func Callback(guiCallback chan widget.Action) {
+ me.myTree.Callback(guiCallback)
+}
+
+func PluginChannel() chan widget.Action {
+ initOnce.Do(initPlugin)
+ return me.myTree.PluginChannel()
+}
+
+func initTree() *tree.TreeInfo {
+ t := tree.New()
+ t.PluginName = PLUGIN
+ t.Add = newAdd
+ t.SetTitle = setTitle
+ t.SetLabel = setLabel
+ t.SetText = setText
+ t.AddText = addText
+
+ t.Enable = enableWidget
+ t.Disable = disableWidget
+
+ t.SetChecked = setChecked
+ t.ToolkitClose = toolkitClose
+ t.ShowTable = showTable
+
+ return t
+}