private void DropDown_eventCheckedChanged(UIComponent component, int index) { try { // handle control click on custom flag: if (Helpers.ControlIsPressed) { Enum flag = DropDown.GetItemUserData(index) as Enum; var cfa = flag.GetEnumMemberAttributes <CustomFlagAttribute>(); if (!cfa.IsNullorEmpty()) { if (!DropDown.GetChecked(index)) // gaurd for stack overflow. { DropDown.SetChecked(index, true); } var panel = MiniPanel.Display(); panel.AddUIComponent <UILabel>().text = "Rename " + flag.ToString(); var field = panel.AddTextField(); field.width = 200; Assertion.NotNull(Target); string flagName = NetInfoExtionsion.Net.GetCustomFlagName(flag: flag, target: Target); field.text = flagName ?? ""; panel.AddButton("Rename", null, () => { NetInfoExtionsion.Net.RenameCustomFlag(flag: flag, target: Target, name: field.text); DropDown.triggerButton.Invoke(nameof(SimulateClick), 0); }); } } } catch (Exception ex) { ex.Log(); } }
// get checked flags in UI private int GetCheckedFlags() { int ret = 0; for (int i = 0; i < DropDown.items.Length; i++) { if (DropDown.GetChecked(i)) { ret |= (int)DropDown.GetItemUserData(i); } } return(ret); }