diff options
Diffstat (limited to 'README-goreadme.md')
| -rw-r--r-- | README-goreadme.md | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/README-goreadme.md b/README-goreadme.md deleted file mode 100644 index 454cfff..0000000 --- a/README-goreadme.md +++ /dev/null @@ -1,200 +0,0 @@ -# gui - -Package gui implements a abstraction layer for Go visual elements. - -Definitions: - -```go -* Toolkit: the underlying GUI library (MacOS gui, Windows gui, gtk, qt, etc) -* Node: A binary tree of all the underlying widgets -``` - -Principles: - -```go -* Make code using this package simple to use -* Hide complexity internally here -* Isolate the GUI toolkit -* Widget names should try to match [Wikipedia Graphical widget] -* When in doubt, search upward in the binary tree -* It's ok to guess. Try to do something sensible. -``` - -Quick Start - -```go -// This creates a simple hello world window -package main - -import ( - "log" - "git.wit.org/wit/gui" -) - -var window *gui.Node // This is the beginning of the binary tree of widgets - -// go will sit here until the window exits -func main() { - gui.Init() - gui.Main(helloworld) -} - -// This initializes the first window and 2 tabs -func helloworld() { - gui.Config.Title = "Hello World golang wit/gui Window" - gui.Config.Width = 640 - gui.Config.Height = 480 - - window := gui.NewWindow() - addTab(window, "A Simple Tab Demo") - addTab(window, "A Second Tab") -} - -func addTab(w *gui.Node, title string) { - tab := w.NewTab(title) - - group := tab.NewGroup("foo bar") - group.NewButton("hello", func() { - log.Println("world") - }) -} -``` - -## Debian Build - -This worked on debian sid on 2022/10/20 -I didn't record the dependances needed - -```go -GO111MODULE="off" go get -v -t -u git.wit.org/wit/gui -cd ~/go/src/git.wit.org/wit/gui/cmds/helloworld/ -GO111MODULE="off" go build -v -x -[./helloworld](./helloworld) -``` - -Toolkits - -```go -* andlabs - [https://github.com/andlabs/ui](https://github.com/andlabs/ui) -* gocui - [https://github.com/awesome-gocui/gocui](https://github.com/awesome-gocui/gocui) -``` - -The next step is to allow this to work against go-gtk and go-qt. - -TODO: Add Fyne, WASM, native macos & windows, android and -hopefully also things like libSDL, faiface/pixel, slint - -## Bugs - -"The author's idea of friendly may differ to that of many other people." - --- quote from the minimalistic window manager 'evilwm' - -## References - -Useful links and other -external things which might be useful - -[Wikipedia Graphical widget]: [https://en.wikipedia.org/wiki/Graphical_widget](https://en.wikipedia.org/wiki/Graphical_widget) -[Github mirror]: [https://github.com/witorg/gui](https://github.com/witorg/gui) -[Federated git pull]: [https://github.com/forgefed/forgefed](https://github.com/forgefed/forgefed) -[GO Style Guide]: [https://google.github.io/styleguide/go/index](https://google.github.io/styleguide/go/index) - -```go -* [Wikipedia Graphical widget] -* [Github mirror] -* [Federated git pull] -* [GO Style Guide] -``` - -## Functions - -### func [DebugWidgetWindow](/debugWidget.go#L52) - -`func DebugWidgetWindow(w *Node)` - -### func [DebugWindow](/debugWindow.go#L21) - -`func DebugWindow()` - -Creates a window helpful for debugging this package - -### func [ExampleCatcher](/chan.go#L37) - -`func ExampleCatcher(f func())` - -### func [Indent](/debug.go#L124) - -`func Indent(b bool, a ...interface{})` - -### func [SetDebug](/debug.go#L28) - -`func SetDebug(s bool)` - -### func [SetFlag](/debug.go#L50) - -`func SetFlag(s string, b bool)` - -### func [ShowDebugValues](/debug.go#L82) - -`func ShowDebugValues()` - -### func [StandardExit](/main.go#L153) - -`func StandardExit()` - -The window is destroyed and the application exits -TODO: properly exit the plugin since Quit() doesn't do it - -### func [Watchdog](/watchdog.go#L16) - -`func Watchdog()` - -This program sits here. -If you exit here, the whole thing will os.Exit() -TODO: use Ticker - -This goroutine can be used like a watchdog timer - -## Types - -### type [GuiArgs](/structs.go#L29) - -`type GuiArgs struct { ... }` - -This struct can be used with the go-arg package - -#### Variables - -```golang -var GuiArg GuiArgs -``` - -### type [Node](/structs.go#L59) - -`type Node struct { ... }` - -The Node is a binary tree. This is how all GUI elements are stored -simply the name and the size of whatever GUI element exists - -#### func [New](/main.go#L120) - -`func New() *Node` - -There should only be one of these per application -This is due to restrictions by being cross platform -some toolkit's on some operating systems don't support more than one -Keep things simple. Do the default expected thing whenever possible - -### type [Symbol](/plugin.go#L17) - -`type Symbol any` - -## Sub Packages - -* [log](./log) - -* [toolkit](./toolkit) - ---- -Readme created from Go doc with [goreadme](https://github.com/posener/goreadme) |
