mirror of
https://github.com/SK-la/Ez2Lazer.git
synced 2026-03-13 11:20:28 +00:00
41 lines
1.5 KiB
C#
41 lines
1.5 KiB
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
using System;
|
|
using osu.Framework.Extensions.IEnumerableExtensions;
|
|
using osu.Framework.Graphics;
|
|
using osu.Framework.Graphics.Containers;
|
|
using osu.Framework.Graphics.Sprites;
|
|
using osu.Game.Graphics.Sprites;
|
|
|
|
namespace osu.Game.Graphics.Containers
|
|
{
|
|
public partial class OsuTextFlowContainer : TextFlowContainer
|
|
{
|
|
public OsuTextFlowContainer(Action<SpriteText>? defaultCreationParameters = null)
|
|
: base(defaultCreationParameters)
|
|
{
|
|
}
|
|
|
|
protected override SpriteText CreateSpriteText() => new OsuSpriteText();
|
|
|
|
public ITextPart AddArbitraryDrawable(Drawable drawable) => AddPart(new TextPartManual(new ArbitraryDrawableWrapper(drawable).Yield()));
|
|
|
|
public ITextPart AddIcon(IconUsage icon, Action<SpriteText>? creationParameters = null) => AddText(icon.Icon.ToString(), creationParameters);
|
|
|
|
private partial class ArbitraryDrawableWrapper : Container, IHasLineBaseHeight
|
|
{
|
|
private readonly IHasLineBaseHeight? lineBaseHeightSource;
|
|
|
|
public float LineBaseHeight => lineBaseHeightSource?.LineBaseHeight ?? DrawHeight;
|
|
|
|
public ArbitraryDrawableWrapper(Drawable drawable)
|
|
{
|
|
Child = drawable;
|
|
lineBaseHeightSource = drawable as IHasLineBaseHeight;
|
|
AutoSizeAxes = Axes.Both;
|
|
}
|
|
}
|
|
}
|
|
}
|