summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-05 12:46:17 -0600
committerJeff Carr <[email protected]>2024-01-05 12:46:17 -0600
commit0993e7d3d06186eac45ad34fd8618565219032ed (patch)
treea9e7bb68dd0cf205af0cf970082b8eee7f620228
parent6f566c0051e9627a7560b9e38ab860ae8a0940c3 (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--Makefile74
-rw-r--r--doc.go14
-rw-r--r--structs.go3
-rw-r--r--tab.go42
4 files changed, 15 insertions, 118 deletions
diff --git a/Makefile b/Makefile
index 97f87bf..7f76096 100644
--- a/Makefile
+++ b/Makefile
@@ -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]
diff --git a/doc.go b/doc.go
index c68b0ae..e8f94db 100644
--- a/doc.go
+++ b/doc.go
@@ -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")
})
diff --git a/structs.go b/structs.go
index 989a4bd..b3900c0 100644
--- a/structs.go
+++ b/structs.go
@@ -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
diff --git a/tab.go b/tab.go
deleted file mode 100644
index 0123c10..0000000
--- a/tab.go
+++ /dev/null
@@ -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
-}