We started work on Goldenseal Pro for Windows a couple weeks ago, and soon had to stop until we made a decision about the basic window setup.
On Macintosh, there is a menu bar at the top of the screen. The current Goldenseal then shows separate windows for each type of record (customers, estimates, material purchases, checking transactions, etc). You can open just what you need, and put the windows side-by-side on the screen so it’s easy to jump from one task to another.
Windows has a menu bar along the top of each window, instead of at the top of the screen. That can take up a lot of space when there are multiple windows, so the current Goldenseal setup is to have one big window with a menu bar, and then smaller ‘child’ windows inside it, for each type of record. It’s called MDI (multiple document interface).
These days, very few programs use MDI: it looks fine on a small screen, but is rather dorky on a large one. However, if we abandon MDI, we still want the Mac and Windows versions to look approximately the same. It makes our tech support (and manual writing) easier, and it’s also easier for users to switch platforms.
Most apps are fairly simple, and can get by with just one window. The trend in GUIs seems to be that even complex programs will stuff everything into one window, with tabs and/or panels to organize it all. A single tabbed window works OK well when there are 5 to 10 things to show, but we have more than 100 possible accounts, lists and transactions that you might want to see. Running a business is complicated, which makes our app more complicated than most.
Usually when we have a tough interface problem, we look at other apps and ‘borrow’ whatever looks the best. Unfortunately, we haven’t found the ideal model to copy, yet. The closest ones so far are the two apps we use for writing code (Xcode on Mac, Visual Studio on Windows). Xcode has one main window, plus the option to open separate windows. Visual Studio has one window, with tabs to switch between files. Neither is particularly ‘user-friendly’, but programming is also very complicated, and at least they don’t make it any worse.
Unless we find something better, we will use a combination of the two approaches for Goldenseal Pro. It will have a main window with tabs for all the accounts and transactions you have active, plus the option to move anything into a separate window. Move them all, and it will look the same as now.
Meanwhile, work is progressing well on Goldenseal Pro. Right now we are busy deleting the old drawing code from our GUI classes, and adding links so they can connect with the modern GUI objects from Cocoa and MFC.