using System; using System.Collections.Generic; using RosettaUI.Builder; using UnityEngine; using UnityEngine.UIElements; namespace RosettaUI.UIToolkit.Builder { public partial class UIToolkitBuilder : BuilderBase { #region Static public static readonly UIToolkitBuilder Instance = new(); static UIToolkitBuilder() { RosettaUI.PopupMenu.Implement ??= new PopupMenuUIToolkit(); } public static VisualElement Build(Element element) { return Instance.BuildInternal(element); } #endregion protected UIToolkitBuilder() { FuncTable = new() { [typeof(BoxElement)] = BuildBindFunc.Create(Bind_ElementGroup), [typeof(ClickableElement)] = BuildBindFunc.Create(Bind_ClickableElement), [typeof(ColumnElement)] = BuildBindFunc.Create(Bind_ElementGroup), [typeof(CompositeFieldElement)] = BuildBindFunc.Create(Bind_CompositeField), [typeof(DynamicElement)] = BuildBindFunc.Create(Bind_DynamicElement), [typeof(FoldElement)] = BuildBindFunc.Create(Bind_Fold), [typeof(HelpBoxElement)] = BuildBindFunc.Create(Bind_HelpBox), [typeof(IndentElement)] = BuildBindFunc.Create(Bind_Indent), [typeof(ListViewItemContainerElement)] = BuildBindFunc.Create(Bind_ListViewItemContainer), [typeof(PageElement)] = BuildBindFunc.Create(Bind_ElementGroup), [typeof(PopupMenuElement)] = BuildBindFunc.Create(Bind_PopupMenu), [typeof(RowElement)] = BuildBindFunc.Create(Bind_ElementGroup), [typeof(ScrollViewElement)] = BuildBindFunc.Create(Bind_ScrollView), [typeof(TabsElement)] = BuildBindFunc.Create(Bind_Tabs), [typeof(WindowElement)] = BuildBindFunc.Create(Bind_Window), [typeof(WindowLauncherElement)] = BuildBindFunc.Create(Bind_WindowLauncher), [typeof(FloatFieldElement)] = BuildBindFunc.Create(Bind_Field), [typeof(IntFieldElement)] = BuildBindFunc.Create(Bind_Field), [typeof(UIntFieldElement)] = BuildBindFunc.Create(Bind_Field), [typeof(TextFieldElement)] = BuildBindFunc.Create(Bind_TextField), [typeof(ColorFieldElement)] = BuildBindFunc.Create(Bind_Field), [typeof(GradientFieldElement)] = BuildBindFunc.Create(Bind_Field), [typeof(AnimationCurveElement)] = BuildBindFunc.Create(Bind_Field), [typeof(IntSliderElement)] = BuildBindFunc.Create(Bind_Slider), [typeof(FloatSliderElement)] = BuildBindFunc.Create(Bind_Slider), [typeof(IntMinMaxSliderElement)] = BuildBindFunc>.Create(Bind_MinMaxSlider), [typeof(FloatMinMaxSliderElement)] = BuildBindFunc>.Create(Bind_MinMaxSlider), [typeof(LabelElement)] = BuildBindFunc