public ModeButton()
{
this.Events |= EventMask.PointerMotionMask
| EventMask.ButtonPressMask
| EventMask.VisibilityNotifyMask;
this.VisibilityNotifyEvent += delegate { this.QueueDraw (); };
m_box = new HBox (true, 6);
m_box.BorderWidth = 6;
this.Add (m_box);
m_box.Show ();
m_button = new Button ();
m_box.PackStart (m_button, false, false, 0);
}