diff options
| author | Jeff Carr <[email protected]> | 2024-01-05 12:46:17 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-05 12:46:17 -0600 |
| commit | 0993e7d3d06186eac45ad34fd8618565219032ed (patch) | |
| tree | a9e7bb68dd0cf205af0cf970082b8eee7f620228 | |
| parent | 6f566c0051e9627a7560b9e38ab860ae8a0940c3 (diff) | |
Tabs are Windows
Tabs don't exist. The are simply windows within a window.
There are *lots* of problems with trying to treat everything
that way. Luckily, we don't have to care. All the problems with
handling that concept can be pushed to the toolkits/
therefore, this primitive code can be kept as clean as possible
Makefile and git cleanups
Signed-off-by: Jeff Carr <[email protected]>
| -rw-r--r-- | Makefile | 74 | ||||
| -rw-r--r-- | doc.go | 14 | ||||
| -rw-r--r-- | structs.go | 3 | ||||
| -rw-r--r-- | tab.go | 42 |
4 files changed, 15 insertions, 118 deletions
@@ -1,12 +1,9 @@ -.PHONY: README.md log examples - -all: README.md - # reset +all: @echo - @echo "make examples # will run all the Example demos and commands" - @echo "make update # full git update of all the dependencies" + @echo This is the core gui package 'go.wit.com/gui/gui' @echo - @echo This Requires working IPv6 + @echo It creates a binary tree of widgets + @echo The widgets are things like Windows, Buttons, Labels, etc @echo ifeq ($(GO111MODULE),) @echo @@ -19,49 +16,21 @@ ifeq ($(GO111MODULE),) @echo @echo export GO111MODULE=off @echo - sleep 3 -endif -ifeq (,$(wildcard go.mod)) - go mod init gui - go mod tidy endif - make clean - make plugins - make examples-buttons -build-dep: - apt install -f libgtk-3-dev +redomod: + rm -f go.* + go mod init + go mod tidy # should update every go dependancy (?) update: git pull go get -v -t -u ./... -examples: \ - all \ - examples-helloworld \ - examples-buttons \ - examples-console-ui-helloworld - -# this is the most basic one. This syntax should always work -examples-helloworld: - make -C examples/helloworld - -examples-buttons: - make -C examples/buttons - -examples-console-ui-helloworld: - make -C examples/console-ui-helloworld - -git.wit.org: - git push witgui master - git push witgui devel - git push witgui jcarr - git push witgui --tags - # sync repo to the github backup # git remote add github [email protected]:wit-go/gui.git -github: git.wit.org +github: git push origin master git push origin devel git push origin --tags @@ -69,35 +38,12 @@ github: git.wit.org git push github devel git push github --tags @echo + @echo check https://git.wit.org/gui/gui @echo check https://github.com/wit-go/gui @echo doc: godoc -v -goget: - go get -v -t -u - make -C toolkit/gocui goget - make -C toolkit/andlabs goget - -clean: - rm -f toolkit/*.so - -plugins: plugins-gocui plugins-andlabs - -plugins-gocui: - go build -C toolkit/gocui -v -buildmode=plugin -o ../gocui.so - go build -C toolkit/nocui -v -buildmode=plugin -o ../nocui.so - -plugins-andlabs: - go build -C toolkit/andlabs -v -buildmode=plugin -o ../andlabs.so - -objdump: - objdump -t toolkit/andlabs.so |less - -log: - reset - tail -f /tmp/witgui.* /tmp/guilogfile - submit-to-docs: GOPROXY=https://proxy.golang.org GO111MODULE=on go get go.wit.com/[email protected] @@ -41,20 +41,16 @@ Hello World Example // go will sit here until the window exits func main() { - myGui = gui.New() + myGui = gui.New().Default() + + helloworld() } - // This initializes the first window and 2 tabs + // This initializes the first window, a group and a button func helloworld() { window := myGui.NewWindow("hello world") - 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 := window.NewGroup("foo bar") group.NewButton("hello", func() { log.Println("world") }) @@ -29,9 +29,6 @@ type guiConfig struct { // This is the master node. The Binary Tree starts here rootNode *Node - // if the user prefers new windows or 'windows within windows' tabs - makeTabs bool - // A node off of rootNode for passing debugging flags flag *Node @@ -1,42 +0,0 @@ -package gui - -import ( - "go.wit.com/log" - - "go.wit.com/gui/toolkits" -) - -// This function should make a new node with the parent and -// the 'tab' as a child - -func (n *Node) NewTab(text string) *Node { - // check to make sure n is actually a window - - if (n.WidgetType != toolkit.Window) { - // figure out what the actual window is - log.Warn("NewTab() is being requested on something that isn't a Window. node =", n) - if (n.parent == nil) { - // TODO: find a window. any window. never give up. never die. - log.Warn("NewTab() TODO: make a window here", n) - panic("NewTab did not get passed a window") - } - log.Warn("NewTab() parent =", n.parent) - if (n.parent.WidgetType == toolkit.Root) { - // also broken - log.Warn("NewTab() TODO: make or find a window here", n) - panic("NewTab() did not get passed a window") - } - // go up the binary tree until we find a window widget to add a tab too - return n.parent.NewTab(text) - } - newNode := n.newNode(text, toolkit.Tab) - - a := newAction(newNode, toolkit.Add) - sendAction(a) - - // by default, create a box inside the tab - // TODO: allow this to be configurable - newBox := newNode.NewBox(text + " box", true) - - return newBox -} |
