1 using System.Collections.Generic;
2 using UnityEditor.Experimental.GraphView;
4 using UnityEngine.UIElements;
5 using System.Reflection;
7 using UnityEngine.Profiling;
9 using PositionType = UnityEngine.UIElements.Position;
11 namespace UnityEditor.VFX.UI
13 class VFXBlockUI : VFXNodeUI
15 Toggle m_EnableToggle;
17 public new VFXBlockController controller
19 get { return base.controller as VFXBlockController; }
20 set { base.controller = value; }
23 public override VFXDataAnchor InstantiateDataAnchor(VFXDataAnchorController controller, VFXNodeUI node)
25 VFXContextDataAnchorController anchorController = controller as VFXContextDataAnchorController;
27 VFXEditableDataAnchor anchor = VFXBlockDataAnchor.Create(anchorController, node);
31 protected override bool HasPosition()
36 public VFXContextUI context
38 get { return this.GetFirstAncestorOfType<VFXContextUI>(); }
43 Profiler.BeginSample("VFXBlockUI.VFXBlockUI");
44 this.AddStyleSheetPath("VFXBlock");
45 pickingMode = PickingMode.Position;
46 m_EnableToggle = new Toggle();
47 m_EnableToggle.RegisterCallback<ChangeEvent<bool>>(OnToggleEnable);
48 titleContainer.Insert(1, m_EnableToggle);
50 capabilities &= ~Capabilities.Ascendable;
51 capabilities |= Capabilities.Selectable | Capabilities.Droppable;
52 this.AddManipulator(new SelectionDropper());
55 style.position = PositionType.Relative;
58 // On purpose -- until we support Drag&Drop I suppose
59 public override void SetPosition(Rect newPos)
61 style.position = PositionType.Relative;
64 void OnToggleEnable(ChangeEvent<bool> e)
66 controller.model.enabled = !controller.model.enabled;
69 protected override void SelfChange()
73 if (controller.model.enabled)
75 titleContainer.RemoveFromClassList("disabled");
79 titleContainer.AddToClassList("disabled");
82 m_EnableToggle.SetValueWithoutNotify(controller.model.enabled);
83 if (inputContainer != null)
84 inputContainer.SetEnabled(controller.model.enabled);
85 if (settingsContainer != null)
86 settingsContainer.SetEnabled(controller.model.enabled);
88 if (!controller.model.isValid)
89 AddToClassList("invalid");
91 RemoveFromClassList("invalid");
94 public override bool superCollapsed