check box を左に

This commit is contained in:
naninunenoy 2020-11-26 01:43:55 +09:00
parent c6aafef7ae
commit 6e5241ed2e
2 changed files with 1021 additions and 17 deletions

View File

@ -5,17 +5,18 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using UnityEditor; using UnityEditor;
using UnityEditor.Compilation; using UnityEditor.Compilation;
using UnityEngine;
using UnityEngine.UIElements; using UnityEngine.UIElements;
namespace AsmdefHelper.DependencyGraph.Editor { namespace AsmdefHelper.DependencyGraph.Editor {
public class AsmdefSelectionView : EditorWindow { public class AsmdefSelectionView : EditorWindow {
const int toggleCount = 1000;
static EditorWindow graphWindow; static EditorWindow graphWindow;
public void OnEnable() { public void OnEnable() {
graphWindow = GetWindow<AsmdefGraphEditorWindow>(); graphWindow = GetWindow<AsmdefGraphEditorWindow>();
}
VisualTreeAsset LoadVisualTreeAsset() { // Each editor window contains a root VisualElement object
VisualElement root = rootVisualElement;
// Import UXML // Import UXML
var visualTree = var visualTree =
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>( AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(
@ -25,20 +26,22 @@ namespace AsmdefHelper.DependencyGraph.Editor {
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>( AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(
"Packages/dev.n5y.asmdefhelper/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.uxml"); "Packages/dev.n5y.asmdefhelper/AsmdefHelper/DependencyGraph/Editor/AsmdefSelectionView/AsmdefSelectionView.uxml");
} }
return visualTree;
VisualElement labelFromUXML = visualTree.Instantiate();
root.Add(labelFromUXML);
} }
public void SetAsmdef(Assembly[] assemblies) { public void SetAsmdef(Assembly[] assemblies) {
VisualElement scroll = new ScrollView(); var sortedAssemblies = assemblies.OrderBy(x => x.name).ToArray();
rootVisualElement.Add(scroll); var scrollView = rootVisualElement.Q<ScrollView>(className: "ScrollView");
var sorted = assemblies.OrderBy(x => x.name); for (var i = 0; i < toggleCount; i++) {
foreach (var assembly in sorted) { var toggle = rootVisualElement.Q<Toggle>(className: $"toggle{i}");
var elm = LoadVisualTreeAsset().Instantiate(); if (i < sortedAssemblies.Length) {
var toggle = elm.Q<Toggle>(className: "CheckBox"); toggle.text = sortedAssemblies[i].name;
var label = elm.Q<Label>(className: "NameLabel");
toggle.value = true; toggle.value = true;
label.text = assembly.name; } else {
scroll.Add(elm); scrollView.Remove(toggle);
}
} }
} }