There are plenty of things about 3dgs that I don't like but the button system in the panels is not one of them.
http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=402345#Post402345The things I do with buttons in this thing, plus panel pointers when you click the buttons is a bit over the top.
However learning how to make a button from scratch is a pretty good way to learn in depth programming and I salute that.