From 3ea3dd10db0e728240fc659bdd33c622d33e46b4 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 18 Jan 2024 00:05:54 -0600 Subject: initial commit Signed-off-by: Jeff Carr --- structs.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 structs.go (limited to 'structs.go') diff --git a/structs.go b/structs.go new file mode 100644 index 0000000..e4d7418 --- /dev/null +++ b/structs.go @@ -0,0 +1,51 @@ +package tree + +/* + These code should be common to all gui plugins + + There are some helper functions that are probably going to be + the same everywhere. Mostly due to handling the binary tree structure + and the channel communication + + For now, it's just a symlink to the 'master' version in + ./toolkit/nocui/common.go +*/ + +import ( + // "go.wit.com/log" + "go.wit.com/lib/widget" +) + +// var me *TreeInfo + +type TreeInfo struct { + // this is the channel we send user events like + // mouse clicks or keyboard events back to the program + callback chan widget.Action + + // this is the channel we get requests to make widgets + pluginChan chan widget.Action + + treeRoot *Node + NodeI interface {} + ActionFromChannel func (widget.Action) () + PluginName string +} + +type Node struct { + Parent *Node + children []*Node + + WidgetId int // widget ID + WidgetType widget.WidgetType + ParentId int // parent ID + + State widget.State + + Strings map[string]int + + // the internal plugin toolkit structure + // in the gtk plugin, it has gtk things like margin & border settings + // in the text console one, it has text console things like colors for menus & buttons + TK any +} -- cgit v1.2.3