public Enum UndoableLabeledEnumPopup(Rect r, string label, Enum enumValue, string undoInfix) { Enum nextEnum = SF_GUI.LabeledEnumField(r, label, enumValue, EditorStyles.miniLabel); if (nextEnum.ToString() != enumValue.ToString()) { string undoName = "set " + undoInfix + " to " + nextEnum; Undo.RecordObject(this, undoName); enumValue = nextEnum; } return(enumValue); }