public bool HandleEvent(ISkinLayout skinLayout, Rectangle layout, IGameContext context, Event @event)
{
var mouseEvent = @event as MouseEvent;
var mousePressEvent = @event as MousePressEvent;
var mouseReleaseEvent = @event as MouseReleaseEvent;
var mouseMoveEvent = @event as MouseMoveEvent;
if (mouseEvent == null)
{
return false;
}
if (layout.Contains(mouseEvent.MouseState.X, mouseEvent.MouseState.Y))
{
if (mouseMoveEvent != null)
{
State = ButtonUIState.Hover;
}
else if (mousePressEvent != null && mousePressEvent.Button == MouseButton.Left)
{
State = ButtonUIState.Clicked;
this.Focus();
#if PLATFORM_WINDOWS || PLATFORM_MACOS || PLATFORM_LINUX
using (var openFileDialog = new OpenFileDialog())
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
Path = openFileDialog.FileName;
if (Changed != null)
{
Changed(this, new EventArgs());
}
}
Application.DoEvents();
}
#endif
return true;
}
}
else
{
State = ButtonUIState.None;
}
if (mouseReleaseEvent != null && mouseReleaseEvent.Button == MouseButton.Left)
{
State = ButtonUIState.None;
}
return false;
}
}