using System.Drawing;
namespace TBO.UI.tboTK
{
class Button : Control
{
protected bool hover = false;
protected bool pressed = false;
public Button(string id) : base(id)
{
Width = 50;
Height = 50;
}
public override void Paint(Graphics g, Rectangle clip)
{
if (pressed)
g.DrawImageKeepRatioEx(Image, 1, 1, Width - 2, Height - 2);
else
g.DrawImageKeepRatioEx(Image, 0, 0, Width, Height, hover ? 1f : 0.5f);
}
public override void Handle(Event e)
{
base.Handle(e);
if (e.Done)
return;
switch (e.Id)
{
case Event.EventType.MouseEnter:
hover = true;
Invalidate();
break;
case Event.EventType.MouseLeave:
hover = false;
Invalidate();
break;
case Event.EventType.MouseDown:
if ((int)e[Event.EventParam.Button] == Event.MouseButtonLeft)
pressed = true;
Invalidate();
break;
case Event.EventType.MouseUp:
if ((int)e[Event.EventParam.Button] == Event.MouseButtonLeft)
pressed = false;
Invalidate();
break;
}
}
public Image Image { get; set; }
}
}