More work for MainGame.mnu

This commit is contained in:
2020-04-19 18:21:08 +01:00
parent f8828c95bd
commit 9be93b6091
12 changed files with 248 additions and 76 deletions

View File

@@ -169,11 +169,11 @@ func (d *Driver) allClickables() []clickable {
var out []clickable
for _, widget := range d.widgets {
out = append(out, widget.clickables()...)
out = append(out, widget.allClickables()...)
}
for _, widget := range d.dialogues {
out = append(out, widget.clickables()...)
out = append(out, widget.allClickables()...)
}
return out
@@ -182,11 +182,11 @@ func (d *Driver) allClickables() []clickable {
func (d *Driver) allFreezables() []freezable {
var out []freezable
for _, widget := range d.widgets {
out = append(out, widget.freezables()...)
out = append(out, widget.allFreezables()...)
}
for _, widget := range d.dialogues {
out = append(out, widget.freezables()...)
out = append(out, widget.allFreezables()...)
}
return out
@@ -196,11 +196,11 @@ func (d *Driver) allValueables() []valueable {
var out []valueable
for _, widget := range d.widgets {
out = append(out, widget.valueables()...)
out = append(out, widget.allValueables()...)
}
for _, widget := range d.dialogues {
out = append(out, widget.valueables()...)
out = append(out, widget.allValueables()...)
}
return out
@@ -208,12 +208,12 @@ func (d *Driver) allValueables() []valueable {
func (d *Driver) activeClickables() []clickable {
if d.activeDialogue != nil {
return d.activeDialogue.clickables()
return d.activeDialogue.activeClickables()
}
var out []clickable
for _, widget := range d.widgets {
out = append(out, widget.clickables()...)
out = append(out, widget.activeClickables()...)
}
return out
@@ -221,12 +221,12 @@ func (d *Driver) activeClickables() []clickable {
func (d *Driver) activeHoverables() []hoverable {
if d.activeDialogue != nil {
return d.activeDialogue.hoverables()
return d.activeDialogue.activeHoverables()
}
var out []hoverable
for _, widget := range d.widgets {
out = append(out, widget.hoverables()...)
out = append(out, widget.activeHoverables()...)
}
return out
@@ -234,12 +234,12 @@ func (d *Driver) activeHoverables() []hoverable {
func (d *Driver) activeMouseables() []mouseable {
if d.activeDialogue != nil {
return d.activeDialogue.mouseables()
return d.activeDialogue.activeMouseables()
}
var out []mouseable
for _, widget := range d.widgets {
out = append(out, widget.mouseables()...)
out = append(out, widget.activeMouseables()...)
}
return out
@@ -249,12 +249,23 @@ func (d *Driver) activePaintables() []paintable {
var out []paintable
for _, widget := range d.widgets {
out = append(out, widget.paintables()...)
out = append(out, widget.activePaintables()...)
}
if d.activeDialogue != nil {
out = append(out, d.activeDialogue.paintables()...)
out = append(out, d.activeDialogue.activePaintables()...)
}
return out
}
func (d *Driver) findWidget(locator string) *Widget {
toplevels := append(d.widgets, d.dialogues...)
for _, widget := range toplevels {
if w := widget.findWidget(locator); w != nil {
return w
}
}
return nil
}