mirror of
https://github.com/Phantop/LADXHD.git
synced 2024-11-01 04:14:22 +00:00
56 lines
1.8 KiB
C#
56 lines
1.8 KiB
C#
|
using Microsoft.Xna.Framework;
|
|||
|
using Microsoft.Xna.Framework.Graphics;
|
|||
|
using ProjectZ.InGame.Things;
|
|||
|
|
|||
|
namespace ProjectZ.Base.UI
|
|||
|
{
|
|||
|
public class UiLabel : UiElement
|
|||
|
{
|
|||
|
private string _label;
|
|||
|
public sealed override string Label
|
|||
|
{
|
|||
|
get => _label;
|
|||
|
set { _label = value; UpdateLabelPosition(); }
|
|||
|
}
|
|||
|
|
|||
|
private Vector2 _textPosition;
|
|||
|
|
|||
|
public UiLabel(Rectangle rectangle, SpriteFont font, string text, string elementId, string screen, UiFunction update, Color backgroundColor)
|
|||
|
: base(elementId, screen)
|
|||
|
{
|
|||
|
Rectangle = rectangle;
|
|||
|
UpdateFunction = update;
|
|||
|
|
|||
|
BackgroundColor = backgroundColor;
|
|||
|
Font = font;
|
|||
|
|
|||
|
Label = text;
|
|||
|
}
|
|||
|
|
|||
|
public UiLabel(Rectangle rectangle, SpriteFont font, string text, string elementId, string screen, UiFunction update) :
|
|||
|
this(rectangle, font, text, elementId, screen, update, Color.Transparent)
|
|||
|
{ }
|
|||
|
|
|||
|
public UiLabel(Rectangle rectangle, string text, string screen) : base("", screen)
|
|||
|
{
|
|||
|
BackgroundColor = Color.Transparent;
|
|||
|
Rectangle = rectangle;
|
|||
|
Label = text;
|
|||
|
}
|
|||
|
|
|||
|
public void UpdateLabelPosition()
|
|||
|
{
|
|||
|
_textPosition = new Vector2(
|
|||
|
(int)(Rectangle.X + Rectangle.Width / 2 - Font.MeasureString(_label).X / 2),
|
|||
|
(int)(Rectangle.Y + Rectangle.Height / 2 - Font.MeasureString(_label).Y / 2));
|
|||
|
}
|
|||
|
|
|||
|
public override void Draw(SpriteBatch spriteBatch)
|
|||
|
{
|
|||
|
// draw the background
|
|||
|
spriteBatch.Draw(Resources.SprWhite, Rectangle, BackgroundColor);
|
|||
|
// draw the label
|
|||
|
spriteBatch.DrawString(Font, _label, _textPosition, FontColor);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|