summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.go9
-rw-r--r--libnotify.go88
-rw-r--r--window.go4
3 files changed, 96 insertions, 5 deletions
diff --git a/init.go b/init.go
index e25e0ce..2c1d0fc 100644
--- a/init.go
+++ b/init.go
@@ -52,6 +52,10 @@ func toolkitInit() {
// SETUP HELP END
// SETUP STDOUT START
+ if me.stdout.tk == nil {
+ makeOutputWidget(me.baseGui, "from setThingsOnTop()")
+ }
+
time.Sleep(300 * time.Millisecond)
log.Info("gocui toolkitInit() me.ok =", me.ok)
me.baseGui.Update(testRefresh)
@@ -72,10 +76,7 @@ func toolkitInit() {
// SETUP libnotify
makeNotifyClock(me.notify.clock.wId)
-
- if me.stdout.tk == nil {
- makeOutputWidget(me.baseGui, "from setThingsOnTop()")
- }
+ makeNotifyMenu(me.notify.menu.wId)
// PUT INIT DEBUG COOE HERE
var toggle bool
diff --git a/libnotify.go b/libnotify.go
index 01e4305..cb27d29 100644
--- a/libnotify.go
+++ b/libnotify.go
@@ -65,7 +65,25 @@ func makeNotifyClock(wId int) {
me.notify.clock.tk.setColorLabel()
me.notify.clock.tk.Show()
me.notify.clock.active = true
- me.notify.clock.tk.dumpWidget("showClock()")
+ me.notify.clock.tk.dumpWidget("notifyClock()")
+
+}
+
+func makeNotifyMenu(wId int) {
+ if me.treeRoot == nil {
+ log.Info("gogui makeClock() error. treeRoot == nil")
+ return
+ }
+ me.notify.menu.tk = makeNewInternalWidget(wId)
+ me.notify.menu.tk.dumpWidget("init() menu")
+ w, _ := me.baseGui.Size()
+ me.notify.menu.tk.MoveToOffset(w-5, me.notify.clock.offsetH)
+ me.notify.menu.tk.labelN = "|jwc|"
+ me.notify.menu.tk.frame = false
+ me.notify.menu.tk.setColorButton()
+ me.notify.menu.tk.Show()
+ me.notify.menu.active = true
+ me.notify.menu.tk.dumpWidget("notifyMenu()")
}
@@ -99,6 +117,26 @@ func libNotifyUpdate() {
me.notify.clock.tk.v.Clear()
me.notify.clock.tk.labelN = time.Now().Format("15:04:05")
me.notify.clock.tk.v.WriteString(me.notify.clock.tk.labelN)
+ hardDrawAtgocuiSize(me.notify.clock.tk)
+ // hardDrawUnderMouse(me.notify.clock.tk, "clock")
+ log.Info("libNotifyUpdate updated clock", me.notify.clock.tk.labelN)
+
+ if me.notify.menu.tk == nil {
+ log.Info("libNotifyUpdate error menu.tk == nil")
+ return
+ }
+ if me.notify.menu.tk.v == nil {
+ log.Info("libNotifyUpdate error menu.tk.v == nil")
+ return
+ }
+
+ // update the menu
+ me.notify.menu.tk.v.Clear()
+ me.notify.menu.tk.labelN = "boo"
+ me.notify.menu.tk.v.WriteString(me.notify.menu.tk.labelN)
+ // hardDrawUnderMouse(me.notify.menu.tk, "menu")
+ me.baseGui.SetViewOnTop(me.notify.menu.tk.v.Name())
+ me.baseGui.SetViewOnTop(me.notify.clock.tk.v.Name())
}
// in the very end of redrawing things, this will place the help and stdout on the top or botton
@@ -109,10 +147,17 @@ func setThingsOnTop() {
} else {
me.baseGui.SetViewOnTop("help")
}
+
if me.notify.clock.tk != nil {
me.baseGui.SetViewOnTop(me.notify.clock.tk.v.Name())
}
+ if me.notify.menu.tk != nil {
+ if me.notify.menu.tk.v != nil {
+ me.baseGui.SetViewOnTop(me.notify.menu.tk.v.Name())
+ }
+ }
+
if me.stdout.tk == nil {
makeOutputWidget(me.baseGui, "from setThingsOnTop()")
}
@@ -143,6 +188,47 @@ func setThingsOnTop() {
setBottomBG()
}
+// useful for debuggging
+func hardDrawUnderMouse(tk *guiWidget, name string) {
+ if tk.v != nil {
+ tk.Hide()
+ }
+ w, h := me.baseGui.MousePosition()
+ a := w
+ b := h
+ c := w + 8
+ d := h + 4
+ var err error
+ tk.v, err = me.baseGui.SetView(tk.cuiName, a, b, c, d, 0)
+ if err == nil {
+ log.Info("hardDrawUnderMouse() err ok widget", tk.cuiName)
+ tk.dumpWidget("hard draw err")
+ }
+ tk.v.Frame = false
+ tk.v.Clear()
+ tk.v.WriteString(tk.labelN + "\n" + name)
+}
+
+func hardDrawAtgocuiSize(tk *guiWidget) {
+ if tk.v != nil {
+ tk.Hide()
+ }
+ a := tk.gocuiSize.w0
+ b := tk.gocuiSize.h0
+ c := tk.gocuiSize.w1
+ d := tk.gocuiSize.h1
+ var err error
+ tk.v, err = me.baseGui.SetView(tk.cuiName, a, b, c, d, 0)
+ if err == nil {
+ log.Info("hardDrawAtgocuiSize() err ok widget", tk.cuiName)
+ tk.dumpWidget("hard draw err")
+ }
+ tk.v.Frame = false
+ tk.v.Clear()
+ tk.v.WriteString(tk.labelN)
+ log.Info("hardDrawAtgocuiSize() err ok widget", tk.cuiName, a, b, c, d, tk.v.Name())
+}
+
// find the "BG" widget and set it to the background on the very very bottom
func setBottomBG() {
if me.BG.tk == nil {
diff --git a/window.go b/window.go
index 51f40e1..043f109 100644
--- a/window.go
+++ b/window.go
@@ -71,6 +71,10 @@ func (tk *guiWidget) redrawWindow(w int, h int) {
tk.setFullSize()
tk.Show()
+ if tk.v == nil {
+ log.Info("redrawWindow on tk.v == nil")
+ standardExit()
+ }
tk.v.Clear()
fmt.Fprint(tk.v, "ZZZ"+tk.GetText())
tk.showWidgets()