BOX: keep removing GuiBox
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
e74b054beb
commit
f9c6083be4
20
area.go
20
area.go
|
@ -7,19 +7,19 @@ import _ "github.com/andlabs/ui/winmanifest"
|
||||||
|
|
||||||
import "github.com/davecgh/go-spew/spew"
|
import "github.com/davecgh/go-spew/spew"
|
||||||
|
|
||||||
func makeGenericArea(gb *GuiBox, newText *ui.AttributedString, custom func(*GuiButton)) {
|
func makeGenericArea(n *Node, newText *ui.AttributedString, custom func(*GuiButton)) {
|
||||||
// make this button just to get the default font (but don't display the button)
|
// make this button just to get the default font (but don't display the button)
|
||||||
// There should be another way to do this (?)
|
// There should be another way to do this (?)
|
||||||
var newB *GuiButton
|
var newB *GuiButton
|
||||||
newB = CreateFontButton(gb, "AREA")
|
newB = CreateFontButton(n, "AREA")
|
||||||
newB.Box = gb
|
// newB.Box = gb
|
||||||
newB.Custom = custom
|
newB.Custom = custom
|
||||||
|
|
||||||
gw := gb.Window
|
gw := n.window
|
||||||
// initialize the GuiArea{}
|
// initialize the GuiArea{}
|
||||||
gw.Area = new(GuiArea)
|
gw.Area = new(GuiArea)
|
||||||
gw.Area.Button = newB
|
gw.Area.Button = newB
|
||||||
gw.Area.Box = gb
|
// gw.Area.Box = gb
|
||||||
gw.Area.UiAttrstr = newText
|
gw.Area.UiAttrstr = newText
|
||||||
gw.Area.UiArea = ui.NewArea(gw.Area)
|
gw.Area.UiArea = ui.NewArea(gw.Area)
|
||||||
|
|
||||||
|
@ -107,10 +107,10 @@ func (ah GuiArea) KeyEvent(a *ui.Area, ke *ui.AreaKeyEvent) (handled bool) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *GuiBox) ShowTextBox(newText *ui.AttributedString, custom func(*GuiButton), name string) {
|
func (n *Node) ShowTextBox(newText *ui.AttributedString, custom func(*GuiButton), name string) {
|
||||||
log.Println("ShowTextBox() START")
|
log.Println("ShowTextBox() START")
|
||||||
|
|
||||||
gw := b.Window
|
gw := n.Window
|
||||||
if (gw == nil) {
|
if (gw == nil) {
|
||||||
log.Println("ShowTextBox() ERROR gw = nil")
|
log.Println("ShowTextBox() ERROR gw = nil")
|
||||||
return
|
return
|
||||||
|
@ -127,10 +127,10 @@ func (b *GuiBox) ShowTextBox(newText *ui.AttributedString, custom func(*GuiButto
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: allow padded & axis here
|
// TODO: allow padded & axis here
|
||||||
b.UiBox.SetPadded(true)
|
n.uiBox.SetPadded(true)
|
||||||
|
|
||||||
// add(gw.BoxMap["MAINBOX"], newbox)
|
// add(gw.BoxMap["MAINBOX"], newbox)
|
||||||
|
|
||||||
makeGenericArea(b, newText, custom)
|
makeGenericArea(n, newText, custom)
|
||||||
b.UiBox.Append(b.Window.Area.UiArea, true)
|
n.uiBox.Append(n.area.UiArea, true)
|
||||||
}
|
}
|
||||||
|
|
98
button.go
98
button.go
|
@ -19,40 +19,6 @@ import _ "github.com/andlabs/ui/winmanifest"
|
||||||
// There is a []GuiButton which has all the buttons. We search
|
// There is a []GuiButton which has all the buttons. We search
|
||||||
// for the button and then call the function below
|
// for the button and then call the function below
|
||||||
//
|
//
|
||||||
/*
|
|
||||||
func defaultButtonClick(button *ui.Button) {
|
|
||||||
log.Println("gui.defaultButtonClick() LOOK FOR BUTTON button =", button)
|
|
||||||
for key, foo := range Data.AllButtons {
|
|
||||||
if (Config.Debug) {
|
|
||||||
log.Println("gui.defaultButtonClick() Data.AllButtons =", key, foo)
|
|
||||||
// spew.Dump(foo)
|
|
||||||
}
|
|
||||||
if Data.AllButtons[key].B == button {
|
|
||||||
log.Println("\tgui.defaultButtonClick() BUTTON MATCHED")
|
|
||||||
guiButtonClick(Data.AllButtons[key])
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
log.Println("\tgui.defaultButtonClick() ERROR: BUTTON NOT FOUND")
|
|
||||||
if (Config.Debug) {
|
|
||||||
panic("gui.defaultButtonClick() ERROR: UNMAPPED ui.Button")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func guiButtonClick(button *GuiButton) {
|
|
||||||
log.Println("\tgui.guiButtonClick() button.Name =", button.Name)
|
|
||||||
if button.Custom != nil {
|
|
||||||
log.Println("\tgui.guiButtonClick() DOING CUSTOM FUNCTION")
|
|
||||||
button.Custom(button)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (Data.MouseClick != nil) {
|
|
||||||
Data.MouseClick(button)
|
|
||||||
} else {
|
|
||||||
log.Println("\tgui.guiButtonClick() IGNORING BUTTON. MouseClick() is nil")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
func (n *Node) AddButton(name string, custom func(*Node)) *Node {
|
func (n *Node) AddButton(name string, custom func(*Node)) *Node {
|
||||||
if (n.uiBox == nil) {
|
if (n.uiBox == nil) {
|
||||||
|
@ -79,66 +45,12 @@ func (n *Node) AddButton(name string, custom func(*Node)) *Node {
|
||||||
return newNode
|
return newNode
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
func CreateFontButton(n *Node, action string) *GuiButton {
|
||||||
func (n *Node) CreateButton(custom func(*GuiButton), name string, values interface {}) *Node {
|
|
||||||
newNode := n.AddBox(Xaxis, "test CreateButton")
|
|
||||||
box := newNode.FindBox()
|
|
||||||
if (box == nil) {
|
|
||||||
panic("node.CreateButton().FindBox() == nil")
|
|
||||||
}
|
|
||||||
newUiB := ui.NewButton(name)
|
|
||||||
newUiB.OnClicked(defaultButtonClick)
|
|
||||||
|
|
||||||
var newB *GuiButton
|
|
||||||
newB = new(GuiButton)
|
|
||||||
newB.B = newUiB
|
|
||||||
if (box.UiBox == nil) {
|
|
||||||
log.Println("CreateButton() box.Window == nil")
|
|
||||||
// ErrorWindow(box.Window, "Login Failed", msg) // can't even do this
|
|
||||||
panic("maybe print an error and return nil? or make a fake button?")
|
|
||||||
} else {
|
|
||||||
// uibox := box.UiBox
|
|
||||||
// uibox.Append(newUiB, true)
|
|
||||||
}
|
|
||||||
newB.Box = box
|
|
||||||
newB.Custom = custom
|
|
||||||
newB.Values = values
|
|
||||||
|
|
||||||
Data.AllButtons = append(Data.AllButtons, newB)
|
|
||||||
|
|
||||||
box.Append(newB.B, false)
|
|
||||||
return newNode
|
|
||||||
}
|
|
||||||
|
|
||||||
func CreateButton(box *GuiBox, custom func(*GuiButton), name string, values interface {}) *GuiButton {
|
|
||||||
newUiB := ui.NewButton(name)
|
|
||||||
newUiB.OnClicked(defaultButtonClick)
|
|
||||||
|
|
||||||
var newB *GuiButton
|
|
||||||
newB = new(GuiButton)
|
|
||||||
newB.B = newUiB
|
|
||||||
if (box.Window == nil) {
|
|
||||||
log.Println("CreateButton() box.Window == nil")
|
|
||||||
// ErrorWindow(box.Window, "Login Failed", msg) // can't even do this
|
|
||||||
panic("maybe print an error and return nil? or make a fake button?")
|
|
||||||
}
|
|
||||||
newB.Box = box
|
|
||||||
newB.Custom = custom
|
|
||||||
newB.Values = values
|
|
||||||
|
|
||||||
Data.AllButtons = append(Data.AllButtons, newB)
|
|
||||||
|
|
||||||
box.Append(newB.B, false)
|
|
||||||
return newB
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
func CreateFontButton(box *GuiBox, action string) *GuiButton {
|
|
||||||
// create a 'fake' button entry for the mouse clicks
|
// create a 'fake' button entry for the mouse clicks
|
||||||
var newGB GuiButton
|
var newGB GuiButton
|
||||||
newGB.Name = "FONT"
|
newGB.Name = "FONT"
|
||||||
newGB.FB = ui.NewFontButton()
|
newGB.FB = ui.NewFontButton()
|
||||||
newGB.Box = box
|
newGB.Box = n.box
|
||||||
Data.AllButtons = append(Data.AllButtons, &newGB)
|
Data.AllButtons = append(Data.AllButtons, &newGB)
|
||||||
|
|
||||||
newGB.FB.OnChanged(func (*ui.FontButton) {
|
newGB.FB.OnChanged(func (*ui.FontButton) {
|
||||||
|
@ -150,12 +62,12 @@ func CreateFontButton(box *GuiBox, action string) *GuiButton {
|
||||||
return &newGB
|
return &newGB
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateColorButton(box *GuiBox, custom func(*GuiButton), name string, values interface {}) *GuiButton {
|
func CreateColorButton(n *Node, custom func(*GuiButton), name string, values interface {}) *GuiButton {
|
||||||
// create a 'fake' button entry for the mouse clicks
|
// create a 'fake' button entry for the mouse clicks
|
||||||
var newCB GuiButton
|
var newCB GuiButton
|
||||||
newCB.Name = name
|
newCB.Name = name
|
||||||
newCB.CB = ui.NewColorButton()
|
newCB.CB = ui.NewColorButton()
|
||||||
newCB.Box = box
|
newCB.Box = n.box
|
||||||
newCB.Custom = custom
|
newCB.Custom = custom
|
||||||
newCB.Values = values
|
newCB.Values = values
|
||||||
|
|
||||||
|
@ -171,6 +83,6 @@ func CreateColorButton(box *GuiBox, custom func(*GuiButton), name string, values
|
||||||
Data.MouseClick(&newCB)
|
Data.MouseClick(&newCB)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
box.Append(newCB.CB, false)
|
n.box.Append(newCB.CB, false)
|
||||||
return &newCB
|
return &newCB
|
||||||
}
|
}
|
||||||
|
|
49
find.go
49
find.go
|
@ -17,44 +17,10 @@ func (n *Node) FindControl() *ui.Control {
|
||||||
return n.uiControl
|
return n.uiControl
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
func (n *Node) FindBox() *GuiBox {
|
|
||||||
if (n.box != nil) {
|
|
||||||
return n.box
|
|
||||||
}
|
|
||||||
if (n.parent != nil) {
|
|
||||||
p := n.parent
|
|
||||||
return p.box
|
|
||||||
}
|
|
||||||
return n.box
|
|
||||||
}
|
|
||||||
|
|
||||||
func (n *Node) FindWindowBox() *GuiBox {
|
|
||||||
if (n.box == nil) {
|
|
||||||
panic("SERIOUS ERROR n.box == nil in FindWindowBox()")
|
|
||||||
}
|
|
||||||
return n.box
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
func (w *GuiWindow) FindNode() *Node {
|
func (w *GuiWindow) FindNode() *Node {
|
||||||
return w.node
|
return w.node
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
func (b *GuiBox) FindNode() *Node {
|
|
||||||
log.Println("gui.FindNode() on GuiBox")
|
|
||||||
if b.node != nil {
|
|
||||||
return b.node
|
|
||||||
}
|
|
||||||
Data.ListChildren(true)
|
|
||||||
b.Dump()
|
|
||||||
log.Println("gui.FindNode() on GuiBox is nil")
|
|
||||||
os.Exit(-1)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
func FindWindow(s string) *GuiWindow {
|
func FindWindow(s string) *GuiWindow {
|
||||||
for name, window := range Data.WindowMap {
|
for name, window := range Data.WindowMap {
|
||||||
if name == s {
|
if name == s {
|
||||||
|
@ -65,21 +31,6 @@ func FindWindow(s string) *GuiWindow {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func FindBox(s string) *GuiBox {
|
|
||||||
for name, window := range Data.WindowMap {
|
|
||||||
if name != s {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
for name, abox := range window.BoxMap {
|
|
||||||
log.Printf("gui.DumpBoxes() \tBOX mapname=%-12s abox.Name=%-12s", name, abox.Name)
|
|
||||||
return abox
|
|
||||||
}
|
|
||||||
log.Println("gui.FindBox() NEED TO INIT WINDOW name =", name)
|
|
||||||
}
|
|
||||||
log.Println("gui.FindBox() COULD NOT FIND BOX", s)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func FindNode(name string) *Node {
|
func FindNode(name string) *Node {
|
||||||
if Data.NodeMap == nil {
|
if Data.NodeMap == nil {
|
||||||
log.Println("gui.FindNode() gui.Data.NodeMap == nil")
|
log.Println("gui.FindNode() gui.Data.NodeMap == nil")
|
||||||
|
|
|
@ -51,6 +51,7 @@ type Node struct {
|
||||||
|
|
||||||
window *GuiWindow
|
window *GuiWindow
|
||||||
box *GuiBox
|
box *GuiBox
|
||||||
|
area *GuiArea
|
||||||
custom func(*Node)
|
custom func(*Node)
|
||||||
|
|
||||||
uiControl *ui.Control
|
uiControl *ui.Control
|
||||||
|
|
Loading…
Reference in New Issue