public void Remove(int index)
{
Widget child = m_box.Children [index];
m_box.Remove (child);
if (m_Selected == index)
m_Selected = -1;
else if (m_Selected >= index)
m_Selected--;
if (m_Hovered >= index)
m_Hovered--;
if (this.ModeRemoved != null)
this.ModeRemoved (this, new ModeButtonEventArgs (index, child));
this.QueueDraw ();
}