diff options
| author | Jeff Carr <[email protected]> | 2025-02-14 18:11:19 -0600 | 
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-02-14 18:11:19 -0600 | 
| commit | a83ca26ac3380be410cd8aaceef7b6a2c7d2701a (patch) | |
| tree | 28e5cf62e8cd216b50e1d1bbdc3e3b758b0f67cb | |
| parent | c4e48c6403936c7f5d1f60d590fc3a91fecdc83d (diff) | |
switch to treeInitv0.22.26v0.22.25v0.22.24v0.22.23v0.22.22v0.22.21v0.22.20v0.22.19v0.22.18v0.22.17v0.22.16v0.22.15
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | action.go | 35 | ||||
| -rw-r--r-- | event.go | 51 | ||||
| -rw-r--r-- | main.go | 25 | ||||
| -rw-r--r-- | structs.go | 4 | ||||
| -rw-r--r-- | tree.go | 24 | ||||
| -rw-r--r-- | treeInit.go | 72 | 
7 files changed, 120 insertions, 95 deletions
@@ -1,10 +1,10 @@  VERSION = $(shell git describe --tags)  BUILDTIME = $(shell date +%Y.%m.%d) -all:nocui.so +all: goimports nocui  	@#ldd nocui.so -nocui.so: +nocui:  	GO111MODULE=off go build -v  -buildmode=plugin -o nocui.so \  		-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" @@ -7,12 +7,13 @@ package main  */  import ( +	"go.wit.com/lib/protobuf/guipb"  	"go.wit.com/log"  	"go.wit.com/toolkits/tree"  	"go.wit.com/widget"  ) -func Add(n *tree.Node) { +func newAdd(n *tree.Node) {  	log.Log(INFO, "Add() END =", n.WidgetType, n.String())  	if n == nil {  		log.Warn("Tree Error: Add() sent n == nil") @@ -68,15 +69,15 @@ func newaction(n *tree.Node, atype widget.ActionType) {  	log.Log(INFO, "newaction() END", atype, n.String())  } -func SetTitle(n *tree.Node, s string) { -	SetText(n, s) +func setTitle(n *tree.Node, s string) { +	setText(n, s)  } -func SetLabel(n *tree.Node, s string) { -	SetText(n, s) +func setLabel(n *tree.Node, s string) { +	setText(n, s)  } -func SetText(n *tree.Node, s string) { +func setText(n *tree.Node, s string) {  	if n == nil {  		log.Warn("Tree Error: Add() sent n == nil")  		return @@ -90,7 +91,7 @@ func SetText(n *tree.Node, s string) {  	log.Info("SetText()", n.WidgetType, n.String())  } -func AddText(n *tree.Node, s string) { +func addText(n *tree.Node, s string) {  	if n == nil {  		log.Warn("Tree Error: Add() sent n == nil")  		return @@ -103,3 +104,23 @@ func AddText(n *tree.Node, s string) {  	// w := n.TK.(*guiWidget)  	// w.AddText(s)  } + +func enableWidget(n *tree.Node) { +	log.Info("do enable() here") +} + +func disableWidget(n *tree.Node) { +	log.Info("do enable() here") +} + +func setChecked(n *tree.Node, b bool) { +	log.Info("do enable() here") +} + +func showTable(n *guipb.Table) { +	log.Info("do enable() here") +} + +func toolkitClose() { +	log.Info("do enable() here") +} diff --git a/event.go b/event.go deleted file mode 100644 index 9fea1b0..0000000 --- a/event.go +++ /dev/null @@ -1,51 +0,0 @@ -package main - -/* -import ( -	"go.wit.com/log" -	"go.wit.com/widget" -	"go.wit.com/toolkits/tree" -) - -func doWidgetClick(n *tree.Node) { -	switch n.WidgetType { -	case widget.Root: -		// THIS IS THE BEGINING OF THE LAYOUT -		// rootNode.nextW = 0 -		// rootNode.nextH = 0 -		// rootNode.redoTabs(true) -	case widget.Flag: -		// me.rootNode.redoColor(true) -		// rootNode.dumpTree(true) -	case widget.Window: -		// setCurrentWindow(w) -		// n.doUserEvent() -	case widget.Tab: -		// setCurrentTab(w) -	case widget.Group: -		// n.placeWidgets() -		// n.toggleTree() -	case widget.Checkbox: -		if n.Bool() { -			// n.setCheckbox(false) -		} else { -			// n.setCheckbox(true) -		} -		// n.doUserEvent() -	case widget.Grid: -		// rootNode.hideWidgets() -		// n.placeGrid() -		// n.showWidgets() -	case widget.Box: -		// n.showWidgetPlacement(logNow, "drawTree()") -		if n.Bool() { -			log.Log(NOW, "BOX IS HORIZONTAL", n.GetProgName()) -		} else { -			log.Log(NOW, "BOX IS VERTICAL", n.GetProgName()) -		} -	case widget.Button: -		// n.doUserEvent() -	default: -	} -} -*/ @@ -9,22 +9,25 @@ package main  import (  	"go.wit.com/log" -	"go.wit.com/toolkits/tree"  ) -func init() { +var PLUGIN string = "nocui" + +func initPlugin() {  	log.Log(INFO, "Init()") -	me.myTree = tree.New() -	me.myTree.PluginName = "nocui" -	//	me.myTree.ActionFromChannel = doAction +	me.myTree = initTree() +	/* +		me.myTree.PluginName = "nocui" +		//	me.myTree.ActionFromChannel = doAction -	me.myTree.NodeAction = newaction -	me.myTree.Add = Add -	me.myTree.SetTitle = SetTitle -	me.myTree.SetLabel = SetLabel -	me.myTree.SetText = SetText -	me.myTree.AddText = AddText +		// me.myTree.NodeAction = newaction +		me.myTree.Add = Add +		me.myTree.SetTitle = SetTitle +		me.myTree.SetLabel = SetLabel +		me.myTree.SetText = SetText +		me.myTree.AddText = AddText +	*/  	me.exit = false @@ -1,6 +1,8 @@  package main  import ( +	"sync" +  	"go.wit.com/toolkits/tree"  ) @@ -13,6 +15,8 @@ type guiWidget struct {  	val map[string]int  } +var initOnce sync.Once // run initPlugin() only once +  // It's probably a terrible idea to call this 'me'  var me config diff --git a/tree.go b/tree.go deleted file mode 100644 index 57f283a..0000000 --- a/tree.go +++ /dev/null @@ -1,24 +0,0 @@ -package main - -/* -	This is reference code for toolkit developers -*/ - -import ( -	"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() -} 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 +}  | 
