forge is finally an app again. this time in the console

This commit is contained in:
Jeff Carr 2025-02-07 03:51:23 -06:00
parent 13a194dca5
commit b6b5df6a18
5 changed files with 55 additions and 58 deletions

View File

@ -5,7 +5,6 @@ package main
import ( import (
"fmt" "fmt"
"strings"
"syscall" "syscall"
"github.com/awesome-gocui/gocui" "github.com/awesome-gocui/gocui"
@ -64,34 +63,6 @@ func theSuperMouse(g *gocui.Gui, v *gocui.View) error {
return nil return nil
} }
func (tk *guiWidget) makeTK(ddItems []string) {
items := strings.Join(ddItems, "\n")
var err error
tk.labelN = items
tk.SetText(items)
tk.gocuiSize.w0 = 100
tk.gocuiSize.w1 = 120
tk.gocuiSize.h0 = 15
tk.gocuiSize.h1 = 18
tk.v, err = me.baseGui.SetView(tk.cuiName,
tk.gocuiSize.w0,
tk.gocuiSize.h0,
tk.gocuiSize.w1,
tk.gocuiSize.h1, 0)
if err != nil {
log.Info("makeTK() err", err)
return
}
if tk.v == nil {
return
}
tk.v.Wrap = true
tk.v.Frame = true
tk.v.Clear()
fmt.Fprint(tk.v, items)
tk.Show()
}
/* /*
func addDropdown() *tree.Node { func addDropdown() *tree.Node {
return addDropdownNew(-222) return addDropdownNew(-222)
@ -172,12 +143,12 @@ func theStdout(g *gocui.Gui, v *gocui.View) error {
if me.stdout.outputOnTop { if me.stdout.outputOnTop {
if me.stdout.outputOffscreen { if me.stdout.outputOffscreen {
me.stdout.outputOffscreen = false me.stdout.outputOffscreen = false
log.Info(fmt.Sprintf("set stdout off screen pager=%d len(%d)", me.stdout.pager, len(me.stdout.outputS))) log.Info(fmt.Sprintf("stdout moved off screen pager=%d len(%d)", me.stdout.pager, len(me.stdout.outputS)))
relocateStdoutOffscreen() relocateStdoutOffscreen()
return nil return nil
} else { } else {
me.stdout.outputOffscreen = true me.stdout.outputOffscreen = true
log.Info("set stdout on screen here") log.Info(fmt.Sprintf("stdout moved on screen pager=%d len(%d)", me.stdout.pager, len(me.stdout.outputS)))
} }
// move the stdout window back onscreen // move the stdout window back onscreen
me.stdout.tk.relocateStdout(me.stdout.lastW, me.stdout.lastH) me.stdout.tk.relocateStdout(me.stdout.lastW, me.stdout.lastH)

View File

@ -43,7 +43,7 @@ func mouseDown(g *gocui.Gui, v *gocui.View) error {
log.Info("mouseDown() stopping here. dropdwon menu is in effect") log.Info("mouseDown() stopping here. dropdwon menu is in effect")
for _, tk := range findByXY(w, h) { for _, tk := range findByXY(w, h) {
if (tk.node.WidgetType == widget.Flag) && (tk == me.dropdown.tk) { if (tk.node.WidgetType == widget.Flag) && (tk == me.dropdown.tk) {
log.Info("SENDING CLICK TO Flag (dropdown)") // log.Info("SENDING CLICK TO Flag (dropdown)")
tk.doWidgetClick(w, h) tk.doWidgetClick(w, h)
me.dropdown.active = false me.dropdown.active = false
return nil return nil
@ -80,45 +80,39 @@ func mouseDown(g *gocui.Gui, v *gocui.View) error {
for _, tk := range tk.findByXYreal(w, h) { for _, tk := range tk.findByXYreal(w, h) {
// tk.dumpWidget("mouseDown()") // tk.dumpWidget("mouseDown()")
if tk.node.WidgetType == widget.Button { if tk.node.WidgetType == widget.Button {
log.Info("SENDING CLICK TO Button") // log.Info("SENDING CLICK TO Button")
tk.doWidgetClick(w, h) tk.doWidgetClick(w, h)
return nil return nil
} }
if tk.node.WidgetType == widget.Checkbox { if tk.node.WidgetType == widget.Checkbox {
log.Info("SENDING CLICK TO Checkbox") // log.Info("SENDING CLICK TO Checkbox")
tk.doWidgetClick(w, h) tk.doWidgetClick(w, h)
return nil return nil
} }
if tk.node.WidgetType == widget.Dropdown { if tk.node.WidgetType == widget.Dropdown {
log.Info("SENDING CLICK TO Dropdown") // log.Info("SENDING CLICK TO Dropdown")
tk.doWidgetClick(w, h) tk.doWidgetClick(w, h)
return nil return nil
} }
if tk.node.WidgetType == widget.Textbox { if tk.node.WidgetType == widget.Textbox {
log.Info("SENDING CLICK TO Textbox") // log.Info("SENDING CLICK TO Textbox")
tk.doWidgetClick(w, h) tk.doWidgetClick(w, h)
return nil return nil
} }
} }
} }
if tk.node.WidgetType == widget.Stdout { if tk.node.WidgetType == widget.Stdout {
tk.dumpWidget("stdout fixme drag()" + tk.labelN) // tk.dumpWidget("stdout fixme drag()" + tk.labelN)
me.currentDrag = tk me.currentDrag = tk
tk.dragW = w - tk.gocuiSize.w0 tk.dragW = w - tk.gocuiSize.w0
tk.dragH = h - tk.gocuiSize.h0 tk.dragH = h - tk.gocuiSize.h0
// tk.doWidgetClick(w-tk.dragW, w-tk.dragH)
return nil return nil
} }
tk.dumpWidget("mouse drag()" + tk.labelN) // tk.dumpWidget("mouse drag()" + tk.labelN)
me.currentDrag = tk me.currentDrag = tk
tk.dragW = w - tk.gocuiSize.w0 tk.dragW = w - tk.gocuiSize.w0
tk.dragH = h - tk.gocuiSize.h0 tk.dragH = h - tk.gocuiSize.h0
// tk.doWidgetClick(w-tk.dragW, w-tk.dragH)
return nil return nil
// move the msg I guess
// return msgDown(g, v)
// return nil
} }
/* /*

View File

@ -202,10 +202,10 @@ func gocuiMain() {
func newWindowTrigger() { func newWindowTrigger() {
log.Log(NOW, "newWindowTriggerl() START") log.Log(NOW, "newWindowTriggerl() START")
for { for {
log.Log(NOW, "newWindowTrigger() for loop") // log.Log(NOW, "GO plugin toolkit made a new window")
select { select {
case tk := <-me.newWindowTrigger: case tk := <-me.newWindowTrigger:
log.Log(NOW, "newWindowTrigger() got new window", tk.cuiName) // log.Log(NOW, "newWindowTrigger() got new window", tk.cuiName)
time.Sleep(200 * time.Millisecond) time.Sleep(200 * time.Millisecond)
redoWindows(1, -1) redoWindows(1, -1)
if !me.stdout.init { if !me.stdout.init {
@ -215,7 +215,7 @@ func newWindowTrigger() {
tk.makeWindowActive() tk.makeWindowActive()
tk.redrawWindow(tk.gocuiSize.w0, tk.gocuiSize.h0) tk.redrawWindow(tk.gocuiSize.w0, tk.gocuiSize.h0)
setThingsOnTop() // sets help, Stdout, etc on the top after windows have been redrawn setThingsOnTop() // sets help, Stdout, etc on the top after windows have been redrawn
log.Log(NOW, "newWindowTrigger() after sleep") // log.Log(NOW, "newWindowTrigger() after sleep")
} }
} }
} }

View File

@ -103,7 +103,7 @@ func relocateStdoutOffscreen() {
return return
} }
log.CaptureMode(me.stdout.tk) log.CaptureMode(me.stdout.tk)
log.Log(ERROR, "setting log.CaptureMode(tk.v) in relocateStdoutOffscreen()") // log.Log(ERROR, "setting log.CaptureMode(tk.v) in relocateStdoutOffscreen()")
newW := 10 newW := 10
newH := 0 - me.stdout.h - 4 newH := 0 - me.stdout.h - 4
me.stdout.tk.relocateStdout(newW, newH) me.stdout.tk.relocateStdout(newW, newH)

View File

@ -5,8 +5,8 @@ package main
import ( import (
"fmt" "fmt"
"strings"
log "go.wit.com/log"
"go.wit.com/toolkits/tree" "go.wit.com/toolkits/tree"
"go.wit.com/widget" "go.wit.com/widget"
) )
@ -48,13 +48,15 @@ func (tk *guiWidget) redrawWindow(w int, h int) {
tk.full.h0 = tk.force.h0 tk.full.h0 = tk.force.h0
tk.setFullSize() tk.setFullSize()
v, err := me.baseGui.SetView(tk.cuiName, tk.gocuiSize.w0, tk.gocuiSize.h0, tk.gocuiSize.w1, tk.gocuiSize.h1, 0) /*
if err != nil { v, err := me.baseGui.SetView(tk.cuiName, tk.gocuiSize.w0, tk.gocuiSize.h0, tk.gocuiSize.w1, tk.gocuiSize.h1, 0)
log.Info("crap. got an err", err) if err != nil {
} log.Info("crap. got an err", err)
if tk.v != v { }
log.Info("crap. got another problem v != tk.v") if tk.v != v {
} log.Info("crap. got another problem v != tk.v")
}
*/
tk.Show() tk.Show()
tk.v.Clear() tk.v.Clear()
fmt.Fprint(tk.v, "ZZZ"+tk.GetText()) fmt.Fprint(tk.v, "ZZZ"+tk.GetText())
@ -95,7 +97,7 @@ func (tk *guiWidget) redrawWindow(w int, h int) {
// re-draws the buttons for each of the windows // re-draws the buttons for each of the windows
func redoWindows(nextW int, nextH int) { func redoWindows(nextW int, nextH int) {
for _, tk := range findWindows() { for _, tk := range findWindows() {
tk.dumpWidget(fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH)) // tk.dumpWidget(fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH))
if tk.window.wasDragged { if tk.window.wasDragged {
// don't move windows around the user has dragged to a certain location // don't move windows around the user has dragged to a certain location
tk.redrawWindow(tk.gocuiSize.w0, tk.gocuiSize.h0) tk.redrawWindow(tk.gocuiSize.w0, tk.gocuiSize.h0)
@ -109,7 +111,7 @@ func redoWindows(nextW int, nextH int) {
// probably a new window? // probably a new window?
tk.redrawWindow(nextW, nextH) tk.redrawWindow(nextW, nextH)
} }
tk.dumpWidget(fmt.Sprintf("redoWindowsE (%d,%d)", nextW, nextH)) // tk.dumpWidget(fmt.Sprintf("redoWindowsE (%d,%d)", nextW, nextH))
// increment the width for the next window // increment the width for the next window
nextW += tk.gocuiSize.Width() + 10 nextW += tk.gocuiSize.Width() + 10
@ -182,3 +184,33 @@ func (tk *guiWidget) makeWindowActive() {
} }
*/ */
} }
func (tk *guiWidget) makeTK(ddItems []string) {
items := strings.Join(ddItems, "\n")
tk.labelN = items
tk.SetText(items)
tk.gocuiSize.w0 = 100
tk.gocuiSize.w1 = 120
tk.gocuiSize.h0 = 15
tk.gocuiSize.h1 = 18
/*
var err error
tk.v, err = me.baseGui.SetView(tk.cuiName,
tk.gocuiSize.w0,
tk.gocuiSize.h0,
tk.gocuiSize.w1,
tk.gocuiSize.h1, 0)
if err != nil {
log.Info("makeTK() err", err)
return
}
if tk.v == nil {
return
}
tk.v.Wrap = true
tk.v.Frame = true
tk.v.Clear()
fmt.Fprint(tk.v, items)
*/
tk.Show()
}