コード例 #1
0
 private void AddType <T2>() where T2 : VisualElement
 {
     if (typeof(T2) != typeof(VisualElement))
     {
         parts.Add(StyleSelectorPart.CreatePredicate(UQuery.IsOfType <T2> .s_Instance));
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 //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);
 }
コード例 #4
0
 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);
 }
コード例 #5
0
        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);
        }