summaryrefslogtreecommitdiff
path: root/treeInit.go
blob: 55faaa6710d88b7f174826289eb30f4d790dba40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
// Use of this source code is governed by the GPL 3.0

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 {
	return me.myTree.PluginChannel()
}

func initTree() *tree.TreeInfo {
	t := tree.New()
	t.PluginName = PLUGIN
	t.NodeAction = newaction
	t.Add = newAdd
	t.SetTitle = setTitle
	t.SetLabel = setLabel
	t.SetText = setText
	t.AddText = addText
	t.SetChecked = setChecked
	t.ToolkitClose = toolkitClose
	t.ShowTable = showTable

	return t
}