public void AddMenuCook(UIMenu menu) { var newitem = new UIMenuItem("Cook!", "Cook the dish with the appropiate ingredients and ketchup."); newitem.SetLeftBadge(UIMenuItem.BadgeStyle.Star); newitem.SetRightBadge(UIMenuItem.BadgeStyle.Tick); menu.AddItem(newitem); menu.OnItemSelect += (sender, item, index) => { if (item == newitem) { string output = ketchup ? "You have ordered ~b~{0}~w~ ~r~with~w~ ketchup." : "You have ordered ~b~{0}~w~ ~r~without~w~ ketchup."; UI.ShowSubtitle(String.Format(output, dish)); } }; menu.OnIndexChange += (sender, index) => { if (sender.MenuItems[index] == newitem) newitem.SetLeftBadge(UIMenuItem.BadgeStyle.None); }; }
public MenuExample() { Tick += OnTick; KeyDown += OnKeyDown; _menuPool = new MenuPool(); mainMenu = new UIMenu("Native UI", "~b~NATIVEUI SHOWCASE"); _menuPool.Add(mainMenu); mainMenu.AddItem(ketchupCheckbox = new UIMenuCheckboxItem("Add ketchup?", false, "Do you wish to add ketchup?")); var foods = new List<dynamic> { "Banana", "Apple", "Pizza", "Quartilicious", 0xF00D, // Dynamic! }; mainMenu.AddItem(dishesListItem = new UIMenuListItem("Food", foods, 0)); mainMenu.AddItem(cookItem = new UIMenuItem("Cook!", "Cook the dish with the appropiate ingredients and ketchup.")); var menuItem = new UIMenuItem("Go to another menu."); mainMenu.AddItem(menuItem); cookItem.SetLeftBadge(UIMenuItem.BadgeStyle.Star); cookItem.SetRightBadge(UIMenuItem.BadgeStyle.Tick); mainMenu.RefreshIndex(); mainMenu.OnItemSelect += OnItemSelect; mainMenu.OnListChange += OnListChange; mainMenu.OnCheckboxChange += OnCheckboxChange; mainMenu.OnIndexChange += OnItemChange; newMenu = new UIMenu("Native UI", "~r~NATIVEUI SHOWCASE"); _menuPool.Add(newMenu); for (int i = 0; i < 20; i++) { newMenu.AddItem(new UIMenuItem("PageFiller", "Sample description that takes more than one line. Moreso, it takes way more than two lines since it's so long. Wow, check out this length!")); } newMenu.RefreshIndex(); mainMenu.BindMenuToItem(newMenu, menuItem); }
private void RedrawMetadataMenu() { _metadataMenu.Clear(); var saveItem = new UIMenuItem(Translation.Translate("Save Map")); saveItem.Activated += (sender, item) => { SaveMap(PropStreamer.CurrentMapMetadata.Filename, MapSerializer.Format.NormalXml); _metadataMenu.Visible = false; }; if (string.IsNullOrWhiteSpace(PropStreamer.CurrentMapMetadata.Filename)) { saveItem.Enabled = false; } { var filenameItem = new UIMenuItem(Translation.Translate("File Path")); if (string.IsNullOrWhiteSpace(PropStreamer.CurrentMapMetadata.Filename)) filenameItem.SetRightBadge(UIMenuItem.BadgeStyle.Alert); else filenameItem.SetRightLabel(GetSafeShortReverseString(PropStreamer.CurrentMapMetadata.Filename, 20)); filenameItem.Activated += (sender, item) => { var newName = Game.GetUserInput(PropStreamer.CurrentMapMetadata.Filename ?? "", 255); if (string.IsNullOrWhiteSpace(newName)) return; if (!newName.EndsWith(".xml")) newName += ".xml"; PropStreamer.CurrentMapMetadata.Filename = newName; saveItem.Enabled = true; filenameItem.SetRightBadge(UIMenuItem.BadgeStyle.None); filenameItem.SetRightLabel(GetSafeShortReverseString(newName, 20)); }; _metadataMenu.AddItem(filenameItem); } { var filenameItem = new UIMenuItem(Translation.Translate("Map Name")); if (!string.IsNullOrWhiteSpace(PropStreamer.CurrentMapMetadata.Name)) filenameItem.SetRightLabel(GetSafeShortString(PropStreamer.CurrentMapMetadata.Name, 20)); filenameItem.Activated += (sender, item) => { var newName = Game.GetUserInput(PropStreamer.CurrentMapMetadata.Name ?? "", 30); if (string.IsNullOrWhiteSpace(newName)) return; PropStreamer.CurrentMapMetadata.Name = newName; filenameItem.SetRightLabel(GetSafeShortString(newName, 20)); }; _metadataMenu.AddItem(filenameItem); } { var filenameItem = new UIMenuItem(Translation.Translate("Author")); if (!string.IsNullOrWhiteSpace(PropStreamer.CurrentMapMetadata.Creator)) filenameItem.SetRightLabel(GetSafeShortString(PropStreamer.CurrentMapMetadata.Creator, 20)); filenameItem.Activated += (sender, item) => { var newName = Game.GetUserInput(PropStreamer.CurrentMapMetadata.Creator ?? "", 30); if (string.IsNullOrWhiteSpace(newName)) return; PropStreamer.CurrentMapMetadata.Creator = newName; filenameItem.SetRightLabel(GetSafeShortString(newName, 20)); }; _metadataMenu.AddItem(filenameItem); } { var filenameItem = new UIMenuItem(Translation.Translate("Description")); if (!string.IsNullOrWhiteSpace(PropStreamer.CurrentMapMetadata.Description)) filenameItem.Description = PropStreamer.CurrentMapMetadata.Description; filenameItem.Activated += (sender, item) => { var newName = Game.GetUserInput(PropStreamer.CurrentMapMetadata.Description ?? "", 255); if (string.IsNullOrWhiteSpace(newName)) return; PropStreamer.CurrentMapMetadata.Description = newName; filenameItem.Description = newName; }; _metadataMenu.AddItem(filenameItem); } _metadataMenu.AddItem(saveItem); _metadataMenu.RefreshIndex(); if (saveItem.Enabled) _metadataMenu.CurrentSelection = 4; // TODO: Change this when adding items. }