void DeleteLevel(ExpandingListItem item) { if (item is LevelPickingLevelItem levelItem) { item.Deselect(); try { Package.RemoveLevel(levelItem.Level); var itemHolder = item.Parent; listView.RemoveItem(item); itemHolder.Size = new IntVector2(itemHolder.Size.X, itemHolder.EffectiveMinSize.Y); listView.UpdateInternalLayout(); } catch (Exception) { MenuUIManager.ErrorPopUp.DisplayError("Package Error", "There was an error removing the level from file, see log for details.", proxy); } } else { throw new InvalidOperationException("Delete button was pressed when it should not have been possible to press"); } }
void ItemDeselected(ExpandingListItem item) { if (item == listView.SelectedItem) { selectButton.Enabled = false; removeButton.Enabled = false; listView.ClearSelection(); } }
void PlayLevel(ExpandingListItem item) { if (item is LevelPickingLevelItem levelItem) { SwitchToPlayingLevel(levelItem.Level); return; } else { throw new InvalidOperationException("Play button was pressed when it should not have been possible to press"); } }
void ItemDeselected(ExpandingListItem deselectedItem) { if (listView.SelectedItem == deselectedItem) { playButton.Enabled = false; deleteButton.Enabled = false; editButton.Enabled = false; listView.ClearSelection(); } listView.UpdateInternalLayout(); }
void ItemSelected(ExpandingListItem args) { listView.Selection = listView.FindItem(args); foreach (var item in GetItems()) { if (args != item) { item.Deselect(); } } args.Select(); selectButton.Enabled = true; removeButton.Enabled = true; }
void EditLevel(ExpandingListItem item) { if (item is LevelPickingLevelItem levelItem) { SwitchToEditingExistingLevel(levelItem.Level); return; } else if (item is LevelPickingNewLevelItem newItem) { SwitchToEditingNewLevel(); return; } else { throw new InvalidOperationException("Edit button was pressed when it should not have been possible to press"); } }
void ItemSelected(ExpandingListItem selectedItem) { listView.Selection = listView.FindItem(selectedItem); foreach (var item in GetItems()) { if (item != selectedItem) { item.Deselect(); } } playButton.Enabled = selectedItem is LevelPickingLevelItem; deleteButton.Enabled = playButton.Enabled; editButton.Enabled = true; listView.UpdateInternalLayout(); }
void AddItem(ExpandingListItem newItem, ListView listView) { newItem.ItemSelected += ItemSelected; newItem.ItemDeselected += ItemDeselected; listView.AddItem(newItem); }