private void ActivateMenu(MenuItemWindow menuWindow) { foreach (var w in MenuWindows.Where(p => p != menuWindow)) { w.Visible = false; } menuWindow.Visible = true; if (!(ParentWindow is FullWindow f)) { return; } if (f.CurrentWindow == menuWindow) { return; } f.SelectWindow(menuWindow); menuWindow.SelectFirstItem(); }
public void AddItem(string item, List <MenuButton> menuItems) { if (!(ParentWindow is FullWindow fw)) { return; } var w = MenuWidth; var menuWindow = new MenuItemWindow(MenuWidth, 1, 20, menuItems.Count, this) { Visible = false }; var y = 0; foreach (var i in menuItems) { var a = i.Action; i.ParentWindow = menuWindow; i.PositionX = 0; i.PositionY = y; i.Action = () => { menuWindow.Visible = false; a?.Invoke(); }; menuWindow.Inputs.Add(i); y++; } MenuWindows.Add(menuWindow); fw.Windows.Add(menuWindow); Inputs.Add(new Button(w + 1, 0, item, this) { BackColor = Terminal.DARK_GRAY, SelectedBackColor = Terminal.GRAY, SelectedTextColor = Terminal.WHITE, Action = () => ActivateMenu(menuWindow) }); }