When I used to work on this stuff, I would build these "hardways" into libraries like Basic_panel_behaviors.h . As you might see from my like of projects-shared, I spent more time writing and fixing libraries than creating anything.