toggle group in box

This commit is contained in:
naninunenoy 2020-11-30 02:37:56 +09:00
parent 9a8772967a
commit 6a2cbd6dd3

View File

@ -64,20 +64,32 @@ namespace AsmdefHelper.DependencyGraph.Editor {
Toggle firstToggle = null; Toggle firstToggle = null;
var domains = group.GetSubDomains(top); var domains = group.GetSubDomains(top);
foreach (var domain in domains) { foreach (var domain in domains) {
var isLast = domains.Last() == domain;
if (toggleDict.TryGetValue(domain.FullName, out var x)) { if (toggleDict.TryGetValue(domain.FullName, out var x)) {
var (_, toggle) = x; var (_, toggle) = x;
var keisen = isLast ? "└" : "├";
toggle.Name = domain.HasSubDomain() ? $"{keisen} {domain.SubDomain}" : toggle.Name;
slaveToggles.Add(toggle); slaveToggles.Add(toggle);
if (firstToggle == null && toggle is UiElementToggle y) { if (firstToggle == null && toggle is UiElementToggle y) {
firstToggle = y.Toggle; firstToggle = y.Toggle;
} }
} }
} }
var toggleGroup = new ToggleGroup(new UiElementToggle(topToggle), slaveToggles); var toggleGroup = new ToggleGroup(new UiElementToggle(topToggle), slaveToggles);
if (firstToggle != null) { if (firstToggle != null) {
var index = scrollView.IndexOf(firstToggle); var index = scrollView.IndexOf(firstToggle);
// グループに属する toggle は box に入れる
var box = new Box();
scrollView.Insert(index, topToggle); scrollView.Insert(index, topToggle);
scrollView.Insert(index + 1, box);
foreach (var slaveToggle in slaveToggles) {
if (slaveToggle is UiElementToggle x) {
box.Add(x.Toggle);
} }
}
}
topToggleDict.Add(top, (true, toggleGroup)); topToggleDict.Add(top, (true, toggleGroup));
} }