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(); }
        }
Example #2
0
        // 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);
        }