public override void Enable(bool fromInspector) { base.Enable(fromInspector); var node = nodeTarget as RandomColorNode; var h = new MinMaxSlider("H", node.minHue, node.maxHue, 0.0f, 1.0f); var s = new MinMaxSlider("S", node.minSat, node.maxSat, 0.0f, 1.0f); var v = new MinMaxSlider("V", node.minValue, node.maxValue, 0.0f, 1.0f); h.RegisterValueChangedCallback(e => { owner.RegisterCompleteObjectUndo("Updated Hue " + e.newValue); node.minHue = e.newValue.x; node.maxHue = e.newValue.y; NotifyNodeChanged(); }); s.RegisterValueChangedCallback(e => { owner.RegisterCompleteObjectUndo("Updated Saturation " + e.newValue); node.minSat = e.newValue.x; node.maxSat = e.newValue.y; NotifyNodeChanged(); }); v.RegisterValueChangedCallback(e => { owner.RegisterCompleteObjectUndo("Updated Value " + e.newValue); node.minValue = e.newValue.x; node.maxValue = e.newValue.y; NotifyNodeChanged(); }); controlsContainer.Add(h); controlsContainer.Add(s); controlsContainer.Add(v); }
public VFXMinMaxSliderField() { AddToClassList("sliderMinMaxField"); m_Slider = new MinMaxSlider(1, 10, 0, 100); m_Slider.RegisterValueChangedCallback(evt => ValueChanged(evt.newValue)); m_IndeterminateLabel = new Label() { name = "indeterminate", text = VFXControlConstants.indeterminateText }; m_IndeterminateLabel.SetEnabled(false); m_Slider.RegisterValueChangedCallback(ValueChanged); Add(m_Slider); RegisterCallBack(); }
public override void Enable(bool fromInspector) { levelsNode = nodeTarget as Levels; base.Enable(fromInspector); var slider = new MinMaxSlider("Luminance", levelsNode.min, levelsNode.max, 0, 1); sliders.Add(slider); slider.RegisterValueChangedCallback(e => { owner.RegisterCompleteObjectUndo("Changed Luminance remap"); levelsNode.min = e.newValue.x; levelsNode.max = e.newValue.y; foreach (var s in sliders) { if (s != null && s.parent != null) { s.SetValueWithoutNotify(e.newValue); } } NotifyNodeChanged(); }); controlsContainer.Add(slider); var mode = this.Q <EnumField>(); mode.RegisterValueChangedCallback((m) => { UpdateMinMaxSliderVisibility((Levels.Mode)m.newValue); }); UpdateMinMaxSliderVisibility(levelsNode.mode); // Compute histogram only when the inspector is selected if (fromInspector) { owner.graph.afterCommandBufferExecuted += UpdateHistogram; controlsContainer.RegisterCallback <DetachFromPanelEvent>(e => { owner.graph.afterCommandBufferExecuted -= UpdateHistogram; }); } void UpdateHistogram() { if (levelsNode.output != null) { var cmd = CommandBufferPool.Get("Update Histogram"); HistogramUtility.ComputeHistogram(cmd, levelsNode.output, levelsNode.histogramData); Graphics.ExecuteCommandBuffer(cmd); } } UpdateHistogram(); void UpdateMinMaxSliderVisibility(Levels.Mode mode) { if (mode == Levels.Mode.Automatic) { slider.style.display = DisplayStyle.None; } else { slider.style.display = DisplayStyle.Flex; } } if (fromInspector) { var histogram = new HistogramView(levelsNode.histogramData, owner); controlsContainer.Add(histogram); } }