fix(ui): retain character sublayout reflow
This commit is contained in:
parent
accacecafe
commit
f684f874df
2 changed files with 64 additions and 9 deletions
|
|
@ -1471,6 +1471,41 @@ public class CharacterStatControllerTests
|
|||
Assert.NotNull(meter.Fill());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ProductionFixture_MountedPagesUseRetailListFooterAndScrollbarReflow()
|
||||
{
|
||||
var layout = FixtureLoader.LoadCharacter();
|
||||
CharacterStatController.Bind(
|
||||
layout,
|
||||
SampleData.SampleCharacter,
|
||||
spriteResolve: id => (id, 16, 16));
|
||||
|
||||
ApplyLayoutPass(layout.Root);
|
||||
|
||||
var page = layout.Root.Children.Single(
|
||||
e => e.DatElementId == CharacterStatController.AttributesPageId);
|
||||
var list = Descendants(page).Single(
|
||||
e => e.DatElementId == CharacterStatController.ListBoxId);
|
||||
var statLayout = list.Parent!;
|
||||
var scrollbar = statLayout.Children.OfType<UiScrollbar>().Single(
|
||||
e => e.DatElementId == CharacterStatController.ListScrollbarId);
|
||||
var divider = statLayout.Children.Single(
|
||||
e => e.DatElementId == CharacterStatController.ListDividerId);
|
||||
var footers = statLayout.Children.Where(
|
||||
e => e.DatElementId is CharacterStatController.FooterStateAId
|
||||
or CharacterStatController.FooterStateBId
|
||||
or CharacterStatController.FooterStateCId).ToList();
|
||||
|
||||
Assert.Equal((112f, 398f), (list.Top, list.Height));
|
||||
Assert.Equal((112f, 398f), (scrollbar.Top, scrollbar.Height));
|
||||
Assert.Equal((510f, 7f), (divider.Top, divider.Height));
|
||||
Assert.Equal(3, footers.Count);
|
||||
Assert.All(footers, footer => Assert.Equal((520f, 55f), (footer.Top, footer.Height)));
|
||||
|
||||
ClickTab(layout, left: 92f);
|
||||
Assert.True(scrollbar.Visible);
|
||||
}
|
||||
|
||||
// ── Helpers ──────────────────────────────────────────────────────────────
|
||||
|
||||
private static void ClickTab(ImportedLayout layout, float left)
|
||||
|
|
@ -1482,6 +1517,15 @@ public class CharacterStatControllerTests
|
|||
tab.OnClick!();
|
||||
}
|
||||
|
||||
private static void ApplyLayoutPass(UiElement parent)
|
||||
{
|
||||
foreach (var child in parent.Children)
|
||||
{
|
||||
child.ApplyAnchor(parent.Width, parent.Height);
|
||||
ApplyLayoutPass(child);
|
||||
}
|
||||
}
|
||||
|
||||
private static string FirstRowName(UiElement list)
|
||||
{
|
||||
var row = Descendants(list).OfType<UiClickablePanel>().FirstOrDefault();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue