feat(ui): port retained widget foundations
This commit is contained in:
parent
44f9ec13d9
commit
d825572e31
44 changed files with 84813 additions and 292 deletions
|
|
@ -139,6 +139,36 @@ public class LayoutConformanceTests
|
|||
Assert.Contains(0x40000000u, fontDids);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void VitalsBinding_ReusesAuthoredTextNodesWithoutDuplicates()
|
||||
{
|
||||
var layout = FixtureLoader.LoadVitals();
|
||||
VitalsController.Bind(
|
||||
layout,
|
||||
() => 1f,
|
||||
() => 1f,
|
||||
() => 1f,
|
||||
() => "100/100",
|
||||
() => "90/100",
|
||||
() => "80/100");
|
||||
|
||||
(uint MeterId, uint TextId)[] cases =
|
||||
[
|
||||
(VitalsController.Health, VitalsController.HealthText),
|
||||
(VitalsController.Stamina, VitalsController.StaminaText),
|
||||
(VitalsController.Mana, VitalsController.ManaText),
|
||||
];
|
||||
|
||||
foreach (var (meterId, textId) in cases)
|
||||
{
|
||||
var meter = Assert.IsType<UiMeter>(layout.FindElement(meterId));
|
||||
var text = Assert.IsType<UiText>(layout.FindElement(textId));
|
||||
Assert.Same(meter, text.Parent);
|
||||
Assert.Single(meter.Children, child => child == text);
|
||||
Assert.False(text.Selectable);
|
||||
}
|
||||
}
|
||||
|
||||
private static void CollectFontDids(ElementInfo node, System.Collections.Generic.List<uint> acc)
|
||||
{
|
||||
if (node.FontDid != 0) acc.Add(node.FontDid);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue