New button designs

Holding this open for review at the moment.
Ok for now, but I'm starting to dislike this ever-growing function signature.  =)