using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Reflection; using System.Text; using UnityEngine; using UnityEngine.UIElements; namespace AV.UITK { public partial class FluentElement { public bool Has() where TType : VisualElement { return Get() != null; } public bool Has(string nameOrClass) where TType : VisualElement { return Get(nameOrClass).First() != null; } public bool Has(string nameOrClass) { return Get(nameOrClass).First() != null; } public bool Has(out TType e) where TType : VisualElement { e = Get(); return e != null; } public bool Has(string nameOrClass, out TType e) where TType : VisualElement { e = Get(nameOrClass); return e != null; } public bool Has(string nameOrClass, out VisualElement e) { e = Get(nameOrClass); return e != null; } // TODO: UQueryBuilder wrapper? public UQueryBuilder Get() where TType : VisualElement { return x.Query(); } public UQueryBuilder Get(string nameOrClass) { return Get(nameOrClass); } public UQueryBuilder Get(string nameOrClass) where TType : VisualElement { if (nameOrClass.StartsWith(".")) return x.Query(className: nameOrClass.TrimStart('.')); if (nameOrClass.StartsWith("#")) return x.Query(name: nameOrClass.TrimStart('#')); return x.Query(nameOrClass); } } }