GUI polish

event.x and event.y didn't work on nex on the mac the way it did in
windows, so I had to come up with another idea.

This is all getting a bit involved... I think converting this to a
class soon is in order before it gets too big.