Custom Home: History, Iterations, and the Evolution of Custom Button

I started with a toolbar, using a custom class for data, XML for storage, and visually displaying buttons on a panel on the user’s screen. The custom buttons were each able to display their own button toolbar, containing its own custom buttons that could do the same.

That application was an off-and-on project throughout several revisions. First, the “toolbar” idea was abandoned, freeing up the top-most buttons to float anywhere on the screen the user desired.
At first, the buttons had very complex menus, like DesktopX up there. I needed to get the functionality working properly before I could go making thinner GUIs.

Before long, I added a tray icon, deciding that was the best way for general preferences and controls.
Support for “Drag and drop” came later, but I realized how necessary it was. I had already implemented re-positioning of the buttons themselves, but users needed to be able to take whatever it was they wanted the button to do, pick it up, drop it on it, and expect the button to figure out what the user wanted.