Ribbons, Goldenseal & Screen Size (Jan 27)

We started out designing software for the small monitors of the 1980s (Mac Plus was 512 x 342, and VGA was 640 x 480). It was tough fitting everything onto such a small screen, and we spent a lot of time trying to save a pixel or two.

Goldenseal was first designed for 800 x 640 monitors, then we upped it to 1024 x 768.  One estimate alone could fill up that much space, so we had to ‘hide’ most of the navigation in the menu bar at the top.  Running a business requires a few hundred possible screens and actions, so we split them up into 9 or 10 menus, with divider bars and submenus to organize them a little. It worked, but was relatively unfriendly for beginners, and not the ideal way to navigate through your company info.

These days, 1920 x 1080 is common for desktop screens: equal to 2 million pixels, 11 Mac Plus screens, or almost 7 VGAs.  Even cheap laptops have a million pixels to work with. Goldenseal Pro can stretch out now. We can use that extra space to make it easier to use.

Most of the menu commands are moving to the outline view on the left (called a tree view in Windows). It makes them easier to find, and easier to organize. There will be a Favorites folder where you can put your most common tasks, ready to access with a single click.

Almost all of the other menu commands can also move. Some will be on-screen buttons, and some will reside in right-click menus.

We started work on a Windows toolbar, but soon discovered ribbons. They are basically a fatter toolbar that also replace the pull-down menus. Now standard in MS Office. They look perfect for Goldenseal Pro. Everything on the left side and/or top of our current screens can go there, plus the few remaining commands in the top menus.

The Mac does not have ribbons built into Cocoa, and Apple’s OS design does not seem to be headed that way.  That means it’s going to be a design challenge to get Goldenseal Pro to look similar on the two platforms, but also stay true to the individual spirits of Mac & Windows. We’ll be working on it gradually over the next month or 2, while we also tackle the nitty-gritty of getting smaller details to work.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro- Bank Accounts Change (Jan 20)

Goldenseal currently has 7 different types of bank accounts: Cash, Checking, Credit Cards, Escrows, Investments, Loans and Savings.

Our current interface for entering bank transactions is not that great. With the new outline view we can improve it, by showing your bank accounts individually on the left, so it’s easier to view them. 

These days, there is not much distinction between those 7 account types. People write checks from credit card or loan accounts, and use debit cards from checking or savings. It really doesn’t matter accounting-wise how we classify them, so we are considering consolidating all bank accounts into a single class, plus “other investments” for miscellaneous assets. We can add a popup menu so it’s still posssible to classify bank accounts by cash/checking/loan etc in reports.

If we go with this change, the converter from Goldenseal to Goldenseal Pro can translate existing accounts automatically. The only complexity will be asking users where to put each Investment account (it might be a bank account for an IRA, and an “other investment” for gold bars, etc).

User comments appreciated.

Dennis Kolva
Programming Director
Turtlesoft.com

Goldenseal Pro Progress (Jan 19)

Goldenseal Pro for Windows now fetches screen layouts from resources, and draws fields on the screen. It was an exciting milestone to reach, because now we can actually see what we are doing, after we make programming changes. The same code is used to make reports, printed forms, and Custom Layouts screens, so it opens up most of the software features.

Handling resources is not easy on Windows. We had to import 338 layouts, then individually rename them, then go through a third time and renumber them. Unfortunately, there are 375 menu resources that need the same treatment. Maybe we can find a faster way to do it.

The Windows code is almost caught up with the Mac version, so we will be alternating between them, from here on out.

The MFC libraries we are using on Windows are totally designed for creating Microsoft products. Doing anything that looks different is much harder. So, it looks like we will have a tool bar at the top and a status bar on the bottom, pretty much like Excel or Word.

The Goldenseal Pro software now uses Unicode for most text.  Unicode includes characters from all languages, and also extra stuff like emojis (including the infamous U+1F4A9). Unfortunately, Windows uses UTF-16 (2 bytes per character) while the Mac uses UTF-8 (1 byte). One of many small, annoying differences between the platforms. 

There are still many details left to complete, before Goldenseal Pro can go live. But, we’ve gotten through the hardest parts. The work is growing more rewarding, with tangible results coming faster. It’s kind of how it feels when a winter construction project gets closed-in and waterproof.

Dennis Kolva
Programming Director
Turtlesoft.com

 

Windows & MFC (Jan 6)

We are making good progress on the Windows version. It was easy to get the new outline view working, since we could use a ‘wizard’ that set it up automatically. After a week of programming, the Windows version already opens files, converts old Goldenseal accounting files to Pro format, and shows the main window. It took more than a month to get to the same point using Cocoa on Macintosh.

We use something called MFC (Microsoft Foundation Classes) for the Window interface code. MFC has been around since 1992, and is still being improved (and used heavily).  MFC is entirely C++, so it’s easy to tie in with our code. In fact, we already use quite a bit of MFC already, in the current Goldenseal for Windows.

Writing good code in C++ takes skill and practice.  Writing apps for Windows and Mac also requires a great deal of patience, since it means working with libraries from massive, semi-monopoly corporations that don’t need to make life easier for their software developers. MFC’s maturity is great, but it also means that many parts still read like DOS from the early 90’s.  Hopefully, we won’t need to spend too much time looking at code such as LPCTSTR lpszItem, LPCTSTR szFilePath.

Dennis Kolva
Programming Director
TurtleSoft.com