button: Add ability to set max width for text (close #528)