public override bool update()
{
if (!m_isVisible)
{
return false;
}
if (m_bounds.Contains((int)MouseHandler.getCurPos().X, (int)MouseHandler.getCurPos().Y))
{
m_currentState = State.Hover;
m_text.setColor(m_hoverColor);
if (MouseHandler.lmbPressed())
{
m_currentState = State.Pressed;
playDownSound();
m_text.setColor(m_pressedColor);
}
if (MouseHandler.lmbUp())
{
playUpSound();
if (m_clickEvent != null)
{
m_clickEvent(this);
}
m_text.setColor(m_hoverColor);
}
}
else if (!m_bounds.Contains((int)MouseHandler.getCurPos().X, (int)MouseHandler.getCurPos().Y)
&& m_bounds.Contains((int)MouseHandler.getPrePos().X, (int)MouseHandler.getPrePos().Y))
{
m_currentState = State.Normal;
m_text.setColor(m_normalColor);
}
return m_currentState == State.Pressed;
}