void cmd_cmbExtra_SelectedIndexChanged(object sender, EventArgs e) { ComboBox box = (ComboBox)sender; if (commandItems.SupressEvents) { return; } GuiRank rank = (GuiRank)box.SelectedItem; if (rank == null) { return; } int boxIdx = Array.IndexOf <ComboBox>(commandExtraBoxes, box); CommandExtraPerms orig = extraPermsList[boxIdx]; CommandExtraPerms copy = LookupExtraPerms(orig.CmdName, orig.Num); if (copy == null) { copy = orig.Copy(); commandExtraPermsChanged.Add(copy); } copy.MinRank = rank.Permission; }
public void OnSpecificChanged(ComboBox box) { GuiRank rank = (GuiRank)box.SelectedItem; if (rank == null || SupressEvents) { return; } ItemPerms curPerms = GetCurPerms(); List <LevelPermission> perms; ComboBox[] boxes; int boxIdx = Array.IndexOf <ComboBox>(AllowBoxes, box); if (boxIdx == -1) { if (curPerms.Disallowed == null) { curPerms.Disallowed = new List <LevelPermission>(); } perms = curPerms.Disallowed; boxes = DisallowBoxes; boxIdx = Array.IndexOf <ComboBox>(DisallowBoxes, box); } else { if (curPerms.Allowed == null) { curPerms.Allowed = new List <LevelPermission>(); } perms = curPerms.Allowed; boxes = AllowBoxes; } if (rank.Permission == LevelPermission.Null) { if (boxIdx >= perms.Count) { return; } perms.RemoveAt(boxIdx); SupressEvents = true; SetSpecificPerms(perms, boxes); SupressEvents = false; } else { SetSpecific(boxes, boxIdx, perms, rank); } }
public void OnMinRankChanged(ComboBox box) { GuiRank rank = (GuiRank)box.SelectedItem; if (rank == null || SupressEvents) { return; } ItemPerms curPerms = GetCurPerms(); curPerms.MinRank = rank.Permission; }
internal static void SetSelectedRank(ComboBox box, LevelPermission perm) { List <GuiRank> ranks = (List <GuiRank>)box.DataSource; GuiRank rank = ranks.Find(r => r.Permission == perm); if (rank == null) { box.SelectedIndex = 1; } else { box.SelectedItem = rank; } }
internal static LevelPermission GetSelectedRank(ComboBox box, LevelPermission defPerm) { GuiRank rank = (GuiRank)box.SelectedItem; return(rank == null ? defPerm : rank.Permission); }
static void SetSpecific(ComboBox[] boxes, int boxIdx, List <LevelPermission> perms, GuiRank rank) { if (boxIdx < perms.Count) { perms[boxIdx] = rank.Permission; } else { perms.Add(rank.Permission); } // Activate next box if (boxIdx < boxes.Length - 1 && !boxes[boxIdx + 1].Visible) { SetAddRank(boxes[boxIdx + 1]); } }