static VisualElement BuildEnumFieldEditor(EnumValueReference enumConstant, Action <Enum> onNewEnumValue) { var enumEditor = new EnumField(enumConstant.ValueAsEnum()); enumEditor.RegisterValueChangedCallback(evt => { onNewEnumValue(evt.newValue); }); return(enumEditor); }
static VisualElement BuildSearcherEnumEditor(EnumValueReference enumConstant, Type enumType, Action <Enum> onNewEnumValue) { var value = enumConstant.ValueAsEnum(); var enumEditor = new Button { text = value.ToString() }; enumEditor.clickable.clickedWithEventInfo += e => { SearcherService.ShowEnumValues("Pick a value", enumType, e.originalMousePosition, (v, i) => { enumEditor.text = v.ToString(); onNewEnumValue(v); }); }; return(enumEditor); }