public void TestUnloadWithOffscreenParent() { Container parent = null; DelayedLoadUnloadWrapper wrapper = null; AddStep("add panel", () => { Add(parent = new Container { Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(128), Masking = true, Child = wrapper = new DelayedLoadUnloadWrapper(() => new TestBox { RelativeSizeAxes = Axes.Both }, 0, 1000) }); }); AddUntilStep("wait for load", () => wrapper.Content?.IsLoaded == true); AddStep("move parent offscreen", () => parent.X = 1000000); // Should be offscreen AddUntilStep("wait for unload", () => wrapper.Content?.IsLoaded != true); }
public void TestUnloadWithParentRemovedFromHierarchy() { Container parent = null; DelayedLoadUnloadWrapper wrapper = null; AddStep("add panel", () => { Add(parent = new Container { Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(128), Masking = true, Child = wrapper = new DelayedLoadUnloadWrapper(() => new TestBox { RelativeSizeAxes = Axes.Both }, 0, 1000) }); }); AddUntilStep("wait for load", () => wrapper.Content?.IsLoaded == true); AddStep("remove parent", () => Remove(parent)); AddUntilStep("wait for unload", () => wrapper.Content?.IsLoaded != true); }
private void load() { Masking = true; BorderColour = colourProvider?.Light1 ?? colours.GreyVioletLighter; AddRange(new[] { new Box { RelativeSizeAxes = Axes.Both, Colour = colourProvider?.Background5 ?? colours.Gray1 }, Background = new DelayedLoadUnloadWrapper(() => new UserCoverBackground { RelativeSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, User = User, }, 300, 5000) { Anchor = Anchor.CentreRight, Origin = Anchor.CentreRight, RelativeSizeAxes = Axes.Both, }, CreateLayout() }); Status.ValueChanged += status => displayStatus(status.NewValue, Activity.Value); Activity.ValueChanged += activity => displayStatus(Status.Value, activity.NewValue); base.Action = ViewProfile = () => { Action?.Invoke(); profileOverlay?.ShowUser(User); }; }