70 lines
1.7 KiB
Go
70 lines
1.7 KiB
Go
// 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.SetChecked = setChecked
|
|
t.ToolkitClose = toolkitClose
|
|
t.ShowTable = showTable
|
|
t.Show = showTable
|
|
|
|
return t
|
|
}
|