This is a addon package for atk that wrapping TCL FileSystem API to mount fs.FS
as virtual filesystem.
Features:
- Embed TCL/TK stdlib to build a standalone GUI app without installing
libtcl/libtk
.
- Mount/Unmount
fs.FS
as virtual filesystem.
Status
-
Linux
is available via cgo
.
-
Windows
is still planning.
-
Mac OS
has no plan because it can package libs into an app.
Usage
Embed TCL/TK stdlib
import github.com/jopbrown/atkvfs/stdlib/v8.6.10/embed
as the blank identifier.
Sample:
package main
import (
_ "github.com/jopbrown/atkvfs/stdlib/v8.6.10/embed"
"github.com/visualfc/atk/tk"
)
type Window struct {
*tk.Window
}
func NewWindow() *Window {
mw := &Window{tk.RootWindow()}
lbl := tk.NewLabel(mw, "Hello World!")
btn := tk.NewButton(mw, "Quit")
btn.OnCommand(func() {
tk.Quit()
})
tk.NewVPackLayout(mw).AddWidgets(lbl, tk.NewLayoutSpacer(mw, 0, true), btn)
mw.ResizeN(300, 200)
return mw
}
func main() {
tk.MainLoop(func() {
mw := NewWindow()
mw.SetTitle("Hello World")
mw.Center()
mw.ShowNormal()
})
}
Mount/Unmount virtual filesystem.
//go:embde myvfs
var myvfs embed.FS
atkvfs.Mount("/myvfs", myvfs)