private void AddType <T2>() where T2 : VisualElement { if (typeof(T2) != typeof(VisualElement)) { parts.Add(StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T2> .s_Instance)); } }
public static T Q <T>(this VisualElement e, string name = null, string className = null) where T : VisualElement { if (typeof(T) == typeof(VisualElement)) { return(e.Q(name, className) as T); } UQueryState <VisualElement> query; if (name == null) { if (className == null) { query = SingleElementTypeQuery.RebuildOn(e); query.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); return(query.First() as T); } query = SingleElementTypeAndClassQuery.RebuildOn(e); query.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); query.m_Matchers[0].complexSelector.selectors[0].parts[1] = StyleSelectorPart.CreateClass(className); return(query.First() as T); } if (className == null) { query = SingleElementTypeAndNameQuery.RebuildOn(e); query.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); query.m_Matchers[0].complexSelector.selectors[0].parts[1] = StyleSelectorPart.CreateId(name); return(query.First() as T); } query = SingleElementTypeAndNameAndClassQuery.RebuildOn(e); query.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); query.m_Matchers[0].complexSelector.selectors[0].parts[1] = StyleSelectorPart.CreateId(name); query.m_Matchers[0].complexSelector.selectors[0].parts[2] = StyleSelectorPart.CreateClass(className); return(query.First() as T); }
//Only used to avoid allocations in Q<>() Don't use this unless you know what you're doing internal UQueryBuilder <T> SingleBaseType() { parts.Add(StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance)); return(this); }
public UQueryBuilder <T> Where(Func <T, bool> selectorPredicate) { //we can't use a static instance as in the QueryState<T>.ForEach below since the query might be long lived parts.Add(StyleSelectorPart.CreatePredicate(new UQuery.PredicateWrapper <T>(selectorPredicate))); return(this); }
public static T Q <T>(this VisualElement e, string name = null, string className = null) where T : VisualElement { bool flag = typeof(T) == typeof(VisualElement); T result; if (flag) { result = (e.Q(name, className) as T); } else { bool flag2 = name == null; if (flag2) { bool flag3 = className == null; if (flag3) { UQueryState <VisualElement> uQueryState = UQueryExtensions.SingleElementTypeQuery.RebuildOn(e); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); result = (uQueryState.First() as T); } else { UQueryState <VisualElement> uQueryState = UQueryExtensions.SingleElementTypeAndClassQuery.RebuildOn(e); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[1] = StyleSelectorPart.CreateClass(className); result = (uQueryState.First() as T); } } else { bool flag4 = className == null; if (flag4) { UQueryState <VisualElement> uQueryState = UQueryExtensions.SingleElementTypeAndNameQuery.RebuildOn(e); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[1] = StyleSelectorPart.CreateId(name); result = (uQueryState.First() as T); } else { UQueryState <VisualElement> uQueryState = UQueryExtensions.SingleElementTypeAndNameAndClassQuery.RebuildOn(e); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[0] = StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T> .s_Instance); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[1] = StyleSelectorPart.CreateId(name); uQueryState.m_Matchers[0].complexSelector.selectors[0].parts[2] = StyleSelectorPart.CreateClass(className); result = (uQueryState.First() as T); } } } return(result); }