mirror of
https://git.alee14.me/shiftos-archive/ShiftOS_TheReturn.git
synced 2025-01-22 18:02:16 +00:00
53 lines
1.7 KiB
C#
53 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.Xna.Framework;
|
|
using ShiftOS.Engine;
|
|
using ShiftOS.Frontend.GraphicsSubsystem;
|
|
|
|
namespace ShiftOS.Frontend.GUI
|
|
{
|
|
public class Button : TextControl
|
|
{
|
|
public Button()
|
|
{
|
|
TextAlign = TextAlign.MiddleCenter;
|
|
Text = "Click me!";
|
|
}
|
|
|
|
protected override void OnLayout(GameTime gameTime)
|
|
{
|
|
if (AutoSize == true)
|
|
{
|
|
int borderwidth = SkinEngine.LoadedSkin.ButtonBorderWidth * 2;
|
|
|
|
var measure = GraphicsContext.MeasureString(this.Text, this.Font);
|
|
Width = borderwidth + (int)measure.X + 16;
|
|
Height = borderwidth + (int)measure.Y + 12;
|
|
}
|
|
}
|
|
|
|
protected override void OnPaint(GraphicsContext gfx)
|
|
{
|
|
var bgCol = UIManager.SkinTextures["ButtonBackgroundColor"];
|
|
var fgCol = SkinEngine.LoadedSkin.ControlTextColor.ToMonoColor();
|
|
if (ContainsMouse)
|
|
bgCol = UIManager.SkinTextures["ButtonHoverColor"];
|
|
if (MouseLeftDown)
|
|
bgCol = UIManager.SkinTextures["ButtonPressedColor"];
|
|
|
|
gfx.DrawRectangle(0, 0, Width, Height, UIManager.SkinTextures["ControlTextColor"]);
|
|
gfx.DrawRectangle(1, 1, Width - 2, Height - 2, bgCol);
|
|
|
|
var measure = GraphicsContext.MeasureString(Text, Font);
|
|
|
|
var loc = new Vector2((Width - measure.X) / 2, (Height - measure.Y) / 2);
|
|
|
|
gfx.DrawString(Text, (int)loc.X, (int)loc.Y, fgCol, Font);
|
|
|
|
}
|
|
}
|
|
}
|