public void GetPropertyData(bool isSubGraph, ChangeExposedFieldCallback exposedFieldCallback, ChangeReferenceNameCallback referenceNameCallback, Action precisionChangedCallback, Action keywordChangedCallback, ChangeValueCallback changeValueCallback, PreChangeValueCallback preChangeValueCallback, PostChangeValueCallback postChangeValueCallback) { this.isSubGraph = isSubGraph; this._exposedFieldChangedCallback = exposedFieldCallback; this._referenceNameChangedCallback = referenceNameCallback; this._precisionChangedCallback = precisionChangedCallback; this._changeValueCallback = changeValueCallback; this._keywordChangedCallback = keywordChangedCallback; this._preChangeValueCallback = preChangeValueCallback; this._postChangeValueCallback = postChangeValueCallback; }
void BuildReferenceNameField(PropertySheet propertySheet) { if (!isSubGraph || shaderInput is ShaderKeyword) { var textPropertyDrawer = new TextPropertyDrawer(); propertySheet.Add(textPropertyDrawer.CreateGUI( null, (string)shaderInput.referenceName, "Reference", out var propertyVisualElement)); m_ReferenceNameField = (TextField)propertyVisualElement; m_ReferenceNameField.RegisterValueChangedCallback( evt => { this._preChangeValueCallback("Change Reference Name"); this._referenceNameChangedCallback(evt.newValue); if (string.IsNullOrEmpty(shaderInput.overrideReferenceName)) { m_ReferenceNameField.RemoveFromClassList("modified"); } else { m_ReferenceNameField.AddToClassList("modified"); } this._postChangeValueCallback(true, ModificationScope.Graph); }); _resetReferenceNameCallback = newValue => { m_ReferenceNameField.value = newValue; m_ReferenceNameField.RemoveFromClassList("modified"); }; if (!string.IsNullOrEmpty(shaderInput.overrideReferenceName)) { propertyVisualElement.AddToClassList("modified"); } propertyVisualElement.SetEnabled(shaderInput.isRenamable); propertyVisualElement.styleSheets.Add(Resources.Load <StyleSheet>("Styles/PropertyNameReferenceField")); } }