#if UNITY_2019_4_OR_NEWER using System; using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; using com.zibra.liquid.Foundation.Editor; using com.zibra.liquid.Foundation.UIElements; using UnityEditor.UIElements; namespace com.zibra.liquid.Plugins.Editor { /// /// Base class for Plugin Settings Window /// /// public abstract class PackageSettingsWindow : EditorWindow where TWindow : EditorWindow { internal abstract IPackageInfo GetPackageInfo(); protected abstract void OnWindowEnable(VisualElement root); internal ButtonStrip m_TabsButtons; protected ScrollView m_TabsContainer; protected readonly Dictionary m_Tabs = new Dictionary(); readonly string m_WindowUIFilesRootPath = $"{ZibraAIPackage.UIToolkitPath}/SettingsWindow"; void OnEnable() { var root = rootVisualElement; UIToolkitEditorUtility.CloneTreeAndApplyStyle(root, $"{m_WindowUIFilesRootPath}/PackageSettingsWindow"); var documentationButton = root.Q("toolbar-button"); documentationButton.clicked += () => Application.OpenURL(ZibraAIPackage.ZibraAiWebsiteRootUrl); m_TabsContainer = root.Q("tabs-container"); var packageInfo = GetPackageInfo(); root.Q