public static void AddBindingRequest(VisualElement ve, IBindingRequest req) { List <IBindingRequest> l = ve.GetProperty(s_BindingRequestObjectVEPropertyName) as List <IBindingRequest>; if (l == null) { l = RequestObjectListPool.Get(); ve.SetProperty(s_BindingRequestObjectVEPropertyName, l); } l.Add(req); ve.IncrementVersion(VersionChangeType.Bindings); }
public static void ClearBindingRequests(VisualElement ve) { List <IBindingRequest> l = ve.GetProperty(s_BindingRequestObjectVEPropertyName) as List <IBindingRequest>; if (l != null) { foreach (var r in l) { r.Release(); } RequestObjectListPool.Release(l); ve.SetProperty(s_BindingRequestObjectVEPropertyName, null); } }
public static void RemoveBindingRequest(VisualElement ve, IBindingRequest req) { List <IBindingRequest> l = ve.GetProperty(s_BindingRequestObjectVEPropertyName) as List <IBindingRequest>; if (l != null) { req.Release(); l.Remove(req); if (l.Count == 0) { RequestObjectListPool.Release(l); ve.SetProperty(s_BindingRequestObjectVEPropertyName, null); } } }
void StopTrackingRecursive(VisualElement ve) { StopTracking(ve); var bindingRequest = ve.GetProperty(s_BindingRequestObjectVEPropertyName); if (bindingRequest != null) { m_ElementsToBind.Remove(ve); } int count = ve.hierarchy.childCount; for (int i = 0; i < count; i++) { var child = ve.hierarchy[i]; StopTrackingRecursive(child); } }
public override void OnVersionChanged(VisualElement ve, VersionChangeType versionChangeType) { base.OnVersionChanged(ve, versionChangeType); if ((versionChangeType & VersionChangeType.Bindings) == VersionChangeType.Bindings) { if (GetBindingObjectFromElement(ve) != null) { StartTracking(ve); } else { StopTracking(ve); } var bindingRequests = ve.GetProperty(s_BindingRequestObjectVEPropertyName); if (bindingRequests != null) { m_ElementsToBind.Add(ve); } } }
public static IBinding GetAdditionalBinding(VisualElement ve) { return(ve.GetProperty(s_AdditionalBindingObjectVEPropertyName) as IBinding); }