github.com/louisevanderlith/droxolite@v1.20.2/menu/menu.go (about) 1 package menu 2 3 type Menu struct { 4 Items []Item 5 } 6 7 func NewMenu() *Menu { 8 return &Menu{} 9 } 10 11 func (m *Menu) AddItem(itm Item) { 12 m.Items = append(m.Items, itm) 13 } 14 15 func (m *Menu) SetActive(link string) bool { 16 foundActive := false 17 18 for _, item := range m.Items { 19 item.Active = item.Link == link 20 21 if !foundActive && item.Active { 22 foundActive = true 23 } 24 25 for _, child := range item.Children { 26 child.Active = child.Link == link 27 } 28 } 29 30 return foundActive 31 }