Esempio n. 1
0
        private void CreatePopup()
        {
            _popup = new UnityEditor.UIElements.PopupField <T>(_values, value, Format, Format);
            _popup.AddToClassList(InputUssClassName);
            _popup.RegisterCallback <ChangeEvent <T> >(evt =>
            {
                if (_values.Contains(evt.newValue))                 // ChangeEvent<string> is posted by _popup's TextElement but target is still _popup for some reason
                {
                    base.value = evt.newValue;
                }

                evt.StopImmediatePropagation();
            });

            this.SetVisualInput(_popup);
        }
        public override void Create(VisualElement root)
        {
            var enumButtons = new EnumButtonsField("Enum Buttons");

            enumButtons.Type     = _types[0];
            enumButtons.UseFlags = false;
            enumButtons.RegisterValueChangedCallback(ValueChanged);
            root.Add(enumButtons);

            var typePopup = new UnityEditor.UIElements.PopupField <Type>("Type", _types, 0, type => type.Name, type => type.Name);

            typePopup.RegisterValueChangedCallback(e => enumButtons.Type = e.newValue);
            root.Add(typePopup);

            var flagsToggle = new Toggle("Use Flags");

            flagsToggle.RegisterValueChangedCallback(e => enumButtons.UseFlags = e.newValue);
            root.Add(flagsToggle);
        }
Esempio n. 3
0
 private void DestroyPopup()
 {
     _popup?.RemoveFromHierarchy();
     _popup = null;
 }