Hey, thanks for the reply, but I actually ended up going a different route.
Even for simple stuff, I found imgui to be an unmitigated piece of crap. I had a hard and bitter fight with imgui, but after wrestling with it for several days, I came to the conclusion that it’s far more trouble than it’s worth. Nanogui only slightly better, but crap also, and I’m not willing to put up with the Eigen dependency (Nanogui brings in Eigen for literally a vector class, that’s kind of like using an atomic bomb to swat a fly).
I came to the same conclusion that John Novak did: all cross-platform GUIs are crap.
I’m of the opinion now that the easiest way to have decent UI widgets is to use the native toolkit. That does *not* mean that your app does not have to be cross-platform, in fact, if done correctly, I’d say that 99% of your app can be completely cross platform, even the visualization / rendering. Only a very thin wrapper needs to be made that hooks up user input to your core, cross-platform logic.
So, what I’m doing now is I managed to get GLFW working in a Cocoa app. It’s super simple to create a quick Cocoa app in Xcode, just drop some widgets on a form, hook up the message handlers, and have these just call my app, which opens a GLFW window, and draws stuff to it. Once I get all the details worked out, I’ll do the same with a WPF app on Windows, and a GTK app on Linux.