I do not have any expert and insightful comment to make since all I can do right now is look at all this code (and whistle quietly between my teeth and go " WOW ") .. but I needed to write that I am simply impressed as heck. Thanks for contributing this great-looking, POD-documented application.
I have to check and see if my GD module version has TrueType support compiled in. If so I may be going to town, absolutely having a riot with the ButtonFactory .
BTW I wish I could say my trailing sig (if it works) was a button made with your app, but it isn't.