summaryrefslogtreecommitdiff
path: root/structs.go
diff options
context:
space:
mode:
Diffstat (limited to 'structs.go')
-rw-r--r--structs.go51
1 files changed, 51 insertions, 0 deletions
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
+}