Last week, we discovered a huge trove of Microsoft sample code. It included the interface source code for most of their apps (Office, Internet Explorer, File Explorer, Outlook…). It also had about 100 sample apps, showing how different features work. We spent most of the week building and running their code, and learned a lot.
Among the samples was RibbonGadgets, with all possible types of controls on a ribbon. We spent a few days trying to merge it into our code, so we could start with a working sample, and then modify it to suit our needs. Unfortunately, ribbon setup is complicated and very fragile, and we just could not merge it. We finally gave up, and are now building a ribbon from scratch. Slower, but we can test at each step and make sure it still works.
We are building Goldenseal Pro for Windows to be as “vanilla” as we can, using the same MFC classes that run Microsoft’s apps. That way, there is less risk of incompatibilities in the future, and more likelihood that our code will upgrade automatically in future versions of Windows. The goal is Volvo station wagon, not Ferrari. Boxy but reliable.
On the Mac side, Cocoa has no built-in ribbon interface. It does have toolbars, but not the kind we need. Fortunately, the screen layout tools in Cocoa are much more flexible than in Windows, so we can still create a similar appearance on both platforms. Being “vanilla” is tougher on Mac because Apple changes it so often, but at least we’ll be current for a while.
Enough interface is working now, that we can tell it’s going to be nifty. The main window will have almost everything that is now in pull-down menus, but organized better. It will be much more understandable for beginners, and not too hard a switch for current users.
We’ll release an ‘alpha’ version after we finish the new ribbon interface. That way, you can check it out and give feedback. The first release will also let you import your existing data, so you can see if it converts properly to the new format. If not, we’ll have plenty of time to fix the bugs.