private void FillList() { SigButDefs.Refresh(); SigButDefElements.Refresh(); if (listComputers.SelectedIndex == -1) //although I don't know how this could happen { listComputers.SelectedIndex = 0; } if (listComputers.SelectedIndex == 0) { SubList = SigButDefs.GetByComputer(""); } else { //remember, defaults are mixed into this list unless overridden: SubList = SigButDefs.GetByComputer(Computers.List[listComputers.SelectedIndex - 1].CompName); } int selected = listButtons.SelectedIndex; listButtons.Items.Clear(); SigButDef button; SigButDefElement[] elements; string s; for (int i = 0; i < 20; i++) { button = SigButDefs.GetByIndex(i, SubList); if (button == null) { listButtons.Items.Add("-" + (i + 1).ToString() + "-"); } else { s = button.ButtonText; elements = SigButDefElements.GetForButton(button.SigButDefNum); for (int e = 0; e < elements.Length; e++) { if (e == 0) { s += " ("; } else { s += ", "; } s += SigElementDefs.GetElement(elements[e].SigElementDefNum).SigText; if (e == elements.Length - 1) { s += ")"; } } if (button.ComputerName == "" && listComputers.SelectedIndex != 0) { s += " " + Lan.g(this, "(all)"); } listButtons.Items.Add(s); } } }
///<summary>Loops through the element list and pulls out one element of a specific type. Used in the button edit window.</summary> public static SigButDefElement GetElement(SigButDef def, SignalElementType elementType) { for (int i = 0; i < def.ElementList.Length; i++) { if (SigElementDefs.GetElement(def.ElementList[i].SigElementDefNum).SigElementType == elementType) { return(def.ElementList[i].Copy()); } } return(null); }