DrawOffset

This commit is contained in:
2025-08-06 20:55:44 -05:00
parent 81c7ec8324
commit 7c96fbb187
20 changed files with 168 additions and 29 deletions

View File

@@ -104,6 +104,13 @@ func (w *Menu) Draw(screen tcell.Screen) {
}
}
func (w *Menu) DrawOffset(c Coord, screen tcell.Screen) {
p := w.GetPos()
w.SetPos(p.Add(c))
w.Draw(screen)
w.SetPos(p)
}
func (w *Menu) drawHMenu(screen tcell.Screen) {
st := w.style
if w.active {
@@ -116,6 +123,7 @@ func (w *Menu) drawHMenu(screen tcell.Screen) {
}
x += 2
if w.expanded || (w.active && !w.manualExpand) {
// TODO: Use DrawOffset?
for i := range w.items {
w.items[i].SetActive(w.active && w.cursor == i)
w.items[i].SetPos(Coord{X: x, Y: y})
@@ -138,6 +146,7 @@ func (w *Menu) drawVMenu(screen tcell.Screen) {
}
h.DrawText(w.x, w.y, w.label, st, screen)
if w.expanded || (w.active && !w.manualExpand) {
// TODO: Use DrawOffset?
for i := range w.items {
w.items[i].SetActive(w.active && w.cursor == i)
w.items[i].SetSize(Coord{X: wW, Y: wH})