summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--toolkit/gocui/click.go22
-rw-r--r--toolkit/gocui/main.go14
-rw-r--r--toolkit/gocui/structs.go9
-rw-r--r--toolkit/gocui/tab.go31
4 files changed, 52 insertions, 24 deletions
diff --git a/toolkit/gocui/click.go b/toolkit/gocui/click.go
index 6df3278..795b13e 100644
--- a/toolkit/gocui/click.go
+++ b/toolkit/gocui/click.go
@@ -18,17 +18,20 @@ func (w *cuiWidget) doWidgetClick() {
case toolkit.Flag:
me.rootNode.redoColor(true)
case toolkit.Window:
+ me.rootNode.hideWidgets()
w.drawBox()
- w.toggleTree()
+ w.showWidgets()
case toolkit.Tab:
+ me.rootNode.hideWidgets()
w.drawBox()
- w.toggleTree()
+ w.showWidgets()
case toolkit.Group:
w.drawBox()
w.toggleTree()
case toolkit.Grid:
+ me.rootNode.hideWidgets()
w.drawGrid()
- w.toggleTree()
+ w.showWidgets()
case toolkit.Box:
// w.showWidgetPlacement(logNow, "drawTree()")
if (w.horizontal) {
@@ -139,9 +142,9 @@ func ctrlDown(g *gocui.Gui, v *gocui.View) error {
f(me.rootNode)
var t string
for _, widget := range widgets {
- log(logNow, "ctrlDown() FOUND widget", widget.id, widget.name)
+ // log(logNow, "ctrlDown() FOUND widget", widget.id, widget.name)
t += widget.cuiName + " " + widget.name + "\n"
- // widget.showWidgetPlacement(logNow, "drawTree()")
+ widget.showWidgetPlacement(logNow, "ctrlDown() FOUND")
}
t = strings.TrimSpace(t)
if (me.ctrlDown == nil) {
@@ -153,10 +156,11 @@ func ctrlDown(g *gocui.Gui, v *gocui.View) error {
if (found == nil) {
found = me.rootNode
}
- me.ctrlDown.gocuiSize.startW = found.gocuiSize.startW
- me.ctrlDown.gocuiSize.startH = found.gocuiSize.startH
- me.ctrlDown.gocuiSize.width = found.gocuiSize.startW
- me.ctrlDown.gocuiSize.height = found.gocuiSize.startH
+ me.ctrlDown.gocuiSize.startW = found.startW
+ me.ctrlDown.gocuiSize.startH = found.startH
+ me.ctrlDown.gocuiSize.width = found.realWidth
+ me.ctrlDown.gocuiSize.height = found.realHeight
+ me.ctrlDown.setWH()
if (me.ctrlDown.v == nil) {
me.ctrlDown.text = found.text
diff --git a/toolkit/gocui/main.go b/toolkit/gocui/main.go
index 11df910..ab50237 100644
--- a/toolkit/gocui/main.go
+++ b/toolkit/gocui/main.go
@@ -11,12 +11,20 @@ import (
func Init() {
log(logInfo, "Init() of awesome-gocui")
me.defaultWidth = 10
- me.defaultHeight = 2
+ me.defaultHeight = 2 // this means by default one line of text in a button
me.defaultBehavior = true
me.horizontalPadding = 20
- me.groupPadding = 2
- me.buttonPadding = 2
+ me.horizontalPadding = 20
+ me.groupPadding = 4
+ me.buttonPadding = 3
+
+ // the raw beginning of each window (or tab)
+ me.rawW = 7
+ me.rawH = 3
+
+ me.padW = 3
+ me.padH = 3
}
func Exit() {
diff --git a/toolkit/gocui/structs.go b/toolkit/gocui/structs.go
index 62a481f..106e719 100644
--- a/toolkit/gocui/structs.go
+++ b/toolkit/gocui/structs.go
@@ -31,7 +31,14 @@ type config struct {
defaultBehavior bool
defaultWidth int
defaultHeight int
- nextW int // where the next window or tab flag should go
+ // nextW int // where the next window or tab flag should go
+
+ padW int
+ padH int
+
+ // where the raw corner is
+ rawW int
+ rawH int
bookshelf bool // do you want things arranged in the box like a bookshelf or a stack?
canvas bool // if set to true, the windows are a raw canvas
diff --git a/toolkit/gocui/tab.go b/toolkit/gocui/tab.go
index d2e604c..7628333 100644
--- a/toolkit/gocui/tab.go
+++ b/toolkit/gocui/tab.go
@@ -42,7 +42,11 @@ func (w *cuiWidget) showFake() {
}
func (w *cuiWidget) showWidgets() {
- w.drawView()
+ if (w.isFake) {
+ // don't display by default
+ } else {
+ w.drawView()
+ }
for _, child := range w.children {
child.showWidgets()
}
@@ -57,20 +61,25 @@ func (w *cuiWidget) setTabWH() {
w.gocuiSize.startW = me.rootNode.startW
w.gocuiSize.startH = me.rootNode.startH
- w.startW = w.gocuiSize.startW + 2
- w.startH = w.gocuiSize.startH + 3
+ w.startW = me.rawW
+ w.startH = me.rawH
- for _, child := range me.rootNode.children {
- if (child.isFake) {
- continue
- }
- if (w == child) {
- w.setWH()
- w.showWidgetPlacement(logNow, "setTABWH:")
+ var f func (widget *cuiWidget)
+
+ // find buttons that are below where the mouse button click
+ f = func(widget *cuiWidget) {
+ if (widget == w) {
return
}
- w.gocuiSize.startW += child.realWidth
+ if ((widget.widgetType == toolkit.Window) || (widget.widgetType == toolkit.Tab)) {
+ w.gocuiSize.startW += widget.gocuiSize.width + me.padW
+ }
+
+ for _, child := range widget.children {
+ f(child)
+ }
}
+ f(me.rootNode)
w.setWH()
w.showWidgetPlacement(logNow, "setTabWH:")