Update the menu to respond to mouse events; move drawing calculations out of draw method and only run them when required rather than every redraw.