hmm. still no dice

This commit is contained in:
Jeff Carr 2025-02-04 13:31:48 -06:00
parent 652cf2b73b
commit 3cf873439d
5 changed files with 67 additions and 91 deletions

View File

@ -15,11 +15,6 @@ func (tk *guiWidget) redrawWindow(w int, h int) {
}
tk.setFullSize() // might make the green box the right size
// draw the current window
// w = tk.gocuiSize.w0 + 4
// h = tk.gocuiSize.h0 + 4
w = w + 4
h = h + 4
tk.DrawAt(w, h)
tk.setColor(&colorActiveW) // sets the window to Green BG
tk.placeWidgets(w, h) // compute the sizes & places for each widget
@ -47,7 +42,7 @@ func (tk *guiWidget) doWidgetClick(w int, h int) {
me.currentWindow.isCurrent = true
tk.active = false
tk.redrawWindow(tk.gocuiSize.w0, tk.gocuiSize.h0)
tk.redrawWindow(w, h)
return
case widget.Group:
if tk.active {

View File

@ -75,27 +75,13 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) {
switch tk.node.WidgetType {
case widget.Window:
newW := startW
newH := startH
// var maxH int = 0
for _, child := range tk.children {
child.placeWidgets(newW, newH)
sizeW, sizeH := child.Size()
/*
if sizeW < 20 {
sizeW = 20
}
*/
newW += sizeW
newH += sizeH
/*
if sizeH > maxH {
maxH = sizeH
}
*/
child.placeWidgets(startW, startH)
sizeW, _ := child.Size()
startW += sizeW + 4 // add the width to move the next widget over
}
return newW - startW, newH - startH
return startW, startH
case widget.Tab:
case widget.Grid:
return tk.placeGrid(startW, startH)

View File

@ -101,7 +101,7 @@ func (w *guiWidget) DrawAt(offsetW, offsetH int) {
w.setColor(&colorActiveW)
w.placeWidgets(offsetW, offsetH) // compute the sizes & places for each widget
w.active = false
w.dumpWidget("DrawAt()")
w.dumpWidget(fmt.Sprintf("DrawAt(%d,%d)", offsetW, offsetH))
}
func (w *guiWidget) simpleDrawAt(offsetW, offsetH int) {
@ -139,3 +139,43 @@ func (w *guiWidget) drawTree(draw bool) {
child.drawTree(draw)
}
}
func (w *guiWidget) Show() {
// don't display fake widgets
if w.isFake {
return
}
// deprecate this
// if this isn't in the binary tree
// it's some internal widget so always display those
if w.node == nil {
w.drawView()
return
}
// deprecate this
// always show window titles
if w.node.WidgetType == widget.Window {
w.drawView()
return
}
/*
// if the widget is not in the current displayed windo
if !w.IsCurrent() {
// log.Log(GOCUI, "Show() w.IsCurrent == false. NOT drawing", w.cuiName, w.String())
return
}
*/
// this comes from the application developer
// finally, check if the widget State is hidden or not
if w.node.Hidden() {
// log.Log(GOCUI, "Show() w.node.Hidden() = false. not drawing", w.cuiName, w.String())
// don't display hidden widgets
return
}
// log.Log(GOCUI, "Show() doing w.drawView()", w.cuiName, w.String())
w.drawView()
}

View File

@ -103,64 +103,6 @@ func (tk *guiWidget) Visible() bool {
return true
}
func (w *guiWidget) Show() {
// always should the dropdown widget
/*
if w == me.dropdownV {
me.dropdownV.drawView()
return
}
*/
// don't display fake widgets
if w.isFake {
return
}
// if this isn't in the binary tree
// it's some internal widget so always display those
if w.node == nil {
w.drawView()
return
}
// always show window titles
if w.node.WidgetType == widget.Window {
w.drawView()
return
}
/*
if w.node.WidgetType == widget.Dropdown {
log.Log(NOW, "Show() dropdown", w.cuiName, w.String())
log.Log(NOW, "Show() dropdown n.Strings() =", w.node.Strings())
}
if w.node.WidgetType == widget.Combobox {
log.Log(NOW, "Show() dropdown", w.cuiName, w.String())
log.Log(NOW, "Show() dropdown n.Strings() =", w.node.Strings())
}
*/
// if the widget is not in the current displayed windo
// then ignore it
// log.Log(GOCUI, "Show() widget =", w.cuiName, w.String())
// log.Log(GOCUI, "Show() w.IsCurrent() returned", w.IsCurrent())
if !w.IsCurrent() {
// log.Log(GOCUI, "Show() w.IsCurrent == false. NOT drawing", w.cuiName, w.String())
return
}
// finally, check if the widget State is hidden or not
if w.node.Hidden() {
// log.Log(GOCUI, "Show() w.node.Hidden() = false. not drawing", w.cuiName, w.String())
// don't display hidden widgets
return
}
// log.Log(GOCUI, "Show() doing w.drawView()", w.cuiName, w.String())
// okay, if you made it this far, then display the widget
w.drawView()
}
func (tk *guiWidget) Hide() {
tk.deleteView()
}

View File

@ -4,18 +4,23 @@
package main
import (
"fmt"
"go.wit.com/widget"
)
// re-draws the buttons for each of the windows
func (w *guiWidget) redoWindows(nextW int, nextH int) {
var startW int = nextW
var startH int = nextH
func (tk *guiWidget) redoWindows(nextW int, nextH int) {
for _, child := range w.children {
for _, child := range tk.children {
if child.node.WidgetType != widget.Window {
continue
}
child.gocuiSize.w0 = nextW
child.gocuiSize.h0 = nextH
tmp := fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH)
child.dumpWidget(tmp)
child.frame = false
child.hasTabs = false
@ -23,10 +28,18 @@ func (w *guiWidget) redoWindows(nextW int, nextH int) {
// this should make the window the full size and re-draw it
child.setFullSize() // child.gocuiSetWH(nextW, nextH)
child.Hide()
child.drawView()
child.DrawAt(nextW, nextH)
child.Show()
tmp = fmt.Sprintf("redoWindowsE (%d,%d)", nextW, nextH)
child.dumpWidget(tmp)
nextW += child.gocuiSize.Width() + 4
child.redoWindows(nextW, nextH)
/*
sizeW := child.gocuiSize.Width()
nextW += sizeW + 4
child.redoWindows(startW+3, startH+2)
*/
}
}