// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. #nullable disable using System; using System.Collections.Generic; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics; using osu.Game.Graphics.Containers; using osu.Game.Graphics.Sprites; using osu.Game.Graphics; namespace osu.Game.Tests.Visual.UserInterface { public class TestSceneSizePreservingSpriteText : OsuGridTestScene { private readonly List parentContainers = new List(); private readonly List childContainers = new List(); private readonly OsuSpriteText osuSpriteText = new OsuSpriteText(); private readonly SizePreservingSpriteText sizePreservingSpriteText = new SizePreservingSpriteText(); public TestSceneSizePreservingSpriteText() : base(1, 2) { for (int i = 0; i < 2; i++) { UprightAspectMaintainingContainer childContainer; Container parentContainer = new Container { Origin = Anchor.BottomRight, Anchor = Anchor.BottomCentre, AutoSizeAxes = Axes.Both, Rotation = 45, Y = -200, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Colour4.Red, }, childContainer = new UprightAspectMaintainingContainer { AutoSizeAxes = Axes.Both, Anchor = Anchor.Centre, Origin = Anchor.Centre, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Colour4.Blue, }, } }, } }; Container cellInfo = new Container { Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, Margin = new MarginPadding { Top = 100, }, Child = new OsuSpriteText { Text = (i == 0) ? "OsuSpriteText" : "SizePreservingSpriteText", Font = OsuFont.GetFont(Typeface.Inter, weight: FontWeight.Bold, size: 40), Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, }, }; parentContainers.Add(parentContainer); childContainers.Add(childContainer); Cell(i).Add(cellInfo); Cell(i).Add(parentContainer); } childContainers[0].Add(osuSpriteText); childContainers[1].Add(sizePreservingSpriteText); osuSpriteText.Font = sizePreservingSpriteText.Font = OsuFont.GetFont(Typeface.Venera, weight: FontWeight.Bold, size: 20); } protected override void Update() { base.Update(); osuSpriteText.Text = sizePreservingSpriteText.Text = DateTime.Now.ToString(); } } }