crippled, but works
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
d6f1a45c77
commit
d4c2f8cb1b
35
dropdown.go
35
dropdown.go
|
@ -88,19 +88,6 @@ func (tk *guiWidget) showDropdown() {
|
|||
}
|
||||
}
|
||||
|
||||
func dropdownClicked(mouseX, mouseH int) {
|
||||
tk := me.dropdownV
|
||||
if tk.Visible() {
|
||||
log.Log(NOW, "hide DDview() Mouse really down at:", mouseX, mouseH)
|
||||
hideDDview()
|
||||
} else {
|
||||
log.Log(NOW, "show DDview() Mouse really down at:", mouseX, mouseH)
|
||||
log.Log(NOW, "can you see the dropdown menu right now?")
|
||||
log.Log(NOW, "if so, something is wrong. I think you can't see it")
|
||||
showDDview()
|
||||
}
|
||||
}
|
||||
|
||||
func hideDDview() error {
|
||||
w, h := me.baseGui.MousePosition()
|
||||
log.Log(NOW, "hide dropdown menu() view msgMouseDown (w,h) =", w, h)
|
||||
|
@ -127,18 +114,26 @@ func showDDview() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
/*
|
||||
// if there is a drop down view active, treat it like a dialog box and close it
|
||||
|
||||
if (hideDDview() == nil) {
|
||||
return nil
|
||||
}
|
||||
*/
|
||||
func (w *guiWidget) dropdownClicked(mouseW, mouseH int) {
|
||||
log.Log(NOW, "dropdownClicked() (w,h) =", mouseW, mouseH)
|
||||
w.SetVisible(false)
|
||||
w.deleteView()
|
||||
|
||||
/*
|
||||
tk := me.dropdownV
|
||||
if tk.Visible() {
|
||||
log.Log(NOW, "hide DDview() Mouse really down at:", mouseX, mouseH)
|
||||
// hideDDview()
|
||||
} else {
|
||||
log.Log(NOW, "show DDview() Mouse really down at:", mouseX, mouseH)
|
||||
log.Log(NOW, "can you see the dropdown menu right now?")
|
||||
log.Log(NOW, "if so, something is wrong. I think you can't see it")
|
||||
showDDview()
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
func dropdownUnclicked(mouseX, mouseH int) {
|
||||
tk := me.dropdownV
|
||||
log.Log(NOW, "mouseUp() view msgMouseDown (check here for dropdown menu click) (w,h) =", mouseX, mouseH)
|
||||
|
|
28
main.go
28
main.go
|
@ -118,9 +118,31 @@ func mainGogui() {
|
|||
// it runs SetManagerFunc which passes every input
|
||||
// event (keyboard, mouse, etc) to the function "gocuiEvent()"
|
||||
func gocuiMain() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Warn("YAHOOOO Recovered in gocuiMain()", r)
|
||||
log.Warn("Recovered from panic:", r)
|
||||
me.baseGui.Close()
|
||||
panic("BUMMER 2")
|
||||
|
||||
// allow gocui to close if possible, then print stack
|
||||
log.Sleep(1)
|
||||
os.Stdout = origStdout
|
||||
os.Stderr = origStderr
|
||||
me.myTree.SendToolkitPanic()
|
||||
log.Warn("Stack trace:")
|
||||
debug.PrintStack()
|
||||
|
||||
// attempt to switch to the nocui toolkit
|
||||
log.Sleep(1)
|
||||
me.myTree.SendToolkitLoad("nocui")
|
||||
// panic("BUMMER")
|
||||
return
|
||||
}
|
||||
}()
|
||||
g, err := gocui.NewGui(gocui.OutputNormal, true)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return
|
||||
}
|
||||
defer g.Close()
|
||||
|
||||
|
@ -135,10 +157,10 @@ func gocuiMain() {
|
|||
g.SetManagerFunc(gocuiEvent)
|
||||
|
||||
if err := defaultKeybindings(g); err != nil {
|
||||
panic(err)
|
||||
// normally panic here
|
||||
}
|
||||
|
||||
if err := g.MainLoop(); err != nil && !errors.Is(err, gocui.ErrQuit) {
|
||||
panic(err)
|
||||
// normally panic here
|
||||
}
|
||||
}
|
||||
|
|
2
mouse.go
2
mouse.go
|
@ -66,7 +66,7 @@ func mouseDown(g *gocui.Gui, v *gocui.View) error {
|
|||
maxX, _ := g.Size()
|
||||
findUnderMouse()
|
||||
msg := fmt.Sprintf("mouseDown() Mouse really down at: %d,%d", mx, my)
|
||||
dropdownClicked(mx, my)
|
||||
// dropdownClicked(mx, my)
|
||||
x := mx - len(msg)/2
|
||||
if x < 0 {
|
||||
x = 0
|
||||
|
|
33
view.go
33
view.go
|
@ -62,32 +62,35 @@ func (w *guiWidget) showView() {
|
|||
}
|
||||
log.Log(INFO, "showView() labelN =", w.labelN)
|
||||
|
||||
/*
|
||||
if w.hidden {
|
||||
w.SetVisible(false)
|
||||
return
|
||||
}
|
||||
|
||||
// if the gocui element doesn't exist, create it
|
||||
if w.v == nil {
|
||||
w.recreateView()
|
||||
*/
|
||||
if w.v != nil {
|
||||
return
|
||||
}
|
||||
|
||||
w.recreateView()
|
||||
w.textResize()
|
||||
w.v.Clear()
|
||||
fmt.Fprint(w.v, w.labelN)
|
||||
/*
|
||||
x0, y0, x1, y1, _ := me.baseGui.ViewPosition(w.cuiName)
|
||||
// x0, y0, x1, y1, err := me.baseGui.ViewPosition(w.cuiName)
|
||||
// log.Log(INFO, "showView() w.v already defined for widget", w.String(), x0, y0, x1, y1, err)
|
||||
|
||||
// n.smartGocuiSize()
|
||||
changed := w.textResize()
|
||||
// changed := w.textResize()
|
||||
|
||||
if !changed {
|
||||
log.Log(INFO, "showView() Clear() and Fprint() here wId =", w.cuiName)
|
||||
w.v.Clear()
|
||||
fmt.Fprint(w.v, w.labelN)
|
||||
w.SetVisible(false)
|
||||
w.SetVisible(true)
|
||||
return
|
||||
}
|
||||
log.Log(INFO, "showView() Clear() and Fprint() here wId =", w.cuiName)
|
||||
w.v.Clear()
|
||||
fmt.Fprint(w.v, w.labelN)
|
||||
log.Log(INFO, "showView() textResize() changed. Should recreateView here wId =", w.cuiName)
|
||||
*/
|
||||
|
||||
/*
|
||||
// if the gocui element has changed where it is supposed to be on the screen
|
||||
// recreate it
|
||||
if x0 != w.gocuiSize.w0 {
|
||||
|
@ -109,8 +112,9 @@ func (w *guiWidget) showView() {
|
|||
w.recreateView()
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
w.SetVisible(true)
|
||||
// w.SetVisible(true)
|
||||
}
|
||||
|
||||
// create or recreate the gocui widget visible
|
||||
|
@ -127,6 +131,7 @@ func (w *guiWidget) recreateView() {
|
|||
me.baseGui.DeleteView(w.cuiName)
|
||||
w.v = nil
|
||||
|
||||
w.textResize()
|
||||
a := w.gocuiSize.w0
|
||||
b := w.gocuiSize.h0
|
||||
c := w.gocuiSize.w1
|
||||
|
|
35
widget.go
35
widget.go
|
@ -70,11 +70,14 @@ func setupCtrlDownWidget() {
|
|||
}
|
||||
|
||||
func (w *guiWidget) deleteView() {
|
||||
if w.v != nil {
|
||||
w.v.Visible = false
|
||||
return
|
||||
}
|
||||
/*
|
||||
if w.v != nil {
|
||||
w.v.Visible = false
|
||||
return
|
||||
}
|
||||
*/
|
||||
// make sure the view isn't really there
|
||||
log.Log(NOW, "deleteView()", w.cuiName, w.WidgetType, w.node.WidgetId)
|
||||
me.baseGui.DeleteView(w.cuiName)
|
||||
w.v = nil
|
||||
}
|
||||
|
@ -103,12 +106,24 @@ func (tk *guiWidget) Visible() bool {
|
|||
if tk.v == nil {
|
||||
return false
|
||||
}
|
||||
return tk.v.Visible
|
||||
// return tk.v.Visible
|
||||
tk.v.Visible = true
|
||||
return true
|
||||
}
|
||||
|
||||
func (w *guiWidget) SetVisible(b bool) {
|
||||
if w.v == nil {
|
||||
return
|
||||
}
|
||||
w.v.Visible = b
|
||||
func (tk *guiWidget) Show() {
|
||||
tk.showView()
|
||||
}
|
||||
|
||||
func (tk *guiWidget) Hide() {
|
||||
tk.deleteView()
|
||||
}
|
||||
|
||||
func (tk *guiWidget) SetVisible(b bool) {
|
||||
if b {
|
||||
tk.Show()
|
||||
} else {
|
||||
tk.Hide()
|
||||
}
|
||||
// w.v.Visible = b
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue