-
Notifications
You must be signed in to change notification settings - Fork 24
Tcl/Tk Go bindings
License
nsf/gothic
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Tcl/Tk Go bindings. VERSION NOTICE Recently Tcl/Tk 8.6 were released. I use them as a default, if you still have Tcl/Tk 8.5 use `go get -tags tcl85 github.com/nsf/gothic`. DESCRIPTION In its current state the bindings are a bit Tk-oriented. You can't create an interpreter instance without Tk. In future it's likely it will be changed. The API is very simple. In the package you have one type and one function: type Interpreter struct func NewInterpreter (init interface{}) *Interpreter In order to launch an interpreter you have to call the "NewInterpreter" function, it will make a new instance of a tcl/tk interpreter in a separate goroutine, execute "init", block in Tk's main loop and then the function returns a pointer to the new instance of an "Interpreter". "init" could be a string with tcl commands that are executed before Tk's main loop, or a function with this signature: "func (*Interpreter)". This function gets executed the same way as the string, that is - before Tk's main loop. Here are the methods of the "Interpreter": func (*Interpreter) ErrorFilter(filt func(error) error) func (*Interpreter) Eval(args ...interface{}) error func (*Interpreter) EvalAs(out interface{}, args ...interface{}) error func (*Interpreter) Set(name string, val interface{}) error func (*Interpreter) UploadImage(name string, img image.Image) error func (*Interpreter) RegisterCommand(name string, cbfunc interface{}) error func (*Interpreter) UnregisterCommand(name string) error func (*Interpreter) RegisterCommands(name string, val interface{}) error func (*Interpreter) UnregisterCommands(name string) error As it was stated before, the "Interpreter" is being executed in a separate goroutine and each method is completely thread-safe. Also every method is synchronous. It will queue commands for execution and wait for their completion. That's it. See "examples" directory it has the use cases for most of the API.
About
Tcl/Tk Go bindings
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published