If you live long enough in IT, everything happens at least twice. The first book I ever wrote, “Zinc It! Interfacing Third Party Libraries with Cross Platform GUI’S” has become somewhat current again.
Some number of years ago I was contacted by a gentleman asking about this book. He was embarking on a journey to port a now OpenSource version of ZAF (Zinc Application Framework) to a current C++ compiler. We exchanged a few emails since then, but, I must admit I have lost is name and contact information. Against all odds, he did complete his journey. I took a quick skim of the site and am seriously impressed that he managed to get the original reference documentation.
While I bitched at the people in charge of Zinc, mostly because they didn’t care about bugs, choosing to focus on adding new features which introduced even more bugs, the approach Zinc took was unique. For the DOS functionality it had to provide everything, but, on all of the other platforms it was a wrapper class to native OS API calls and that makes it relevant today.
How so you ask?
We stand on shifting sand. Google is abandoning Android for Fuchsia. Windows will just be a GUI on top of Ubuntu in a few years, just like MAC is on top of BSD today. Cross platform tool kits writing their own low level code for things like Styles, etc. have a maintenance nightmare in front of them. Layering on top of OS level APIs protects you just a bit. If an API changes slightly from say 10.0 to 11.0, you can either conditionally compile or morph at run-time based on the current OS version.
Of course, life will always suck when they completely throw out the rule book with the API, but, as a cross platform framework tries to add support for more and more frameworks keeping support for more and more versions, the wrapper makes it a bit more doable than roll your own.
Zinc was an interesting product. Even if none of you purchase one of the limited copies I still have from the first print run, you should take some time out from your binge watching to pull down what he has done and take a good look.
I suspect this OpenSource version will gain a bit of traction at some point. Unlike most OpenSource projects with sucky documentation, this appears to have the last rev of the commercial documentation which existed at the fork so it is slick to look at. The home page claims there is already a Linux port which should make it easier to most to experiment with. (Just how many of us still have a DOS machine laying around?)
Pay them a visit. You may just want to look at doing the Android port and enabling touch support.