I have also run into this problem. I have tried at different moments in time Gtk, it's C++ bindings, wxWidgets, Java+AWT/Swing, Qt.
I couldn't agree more that all of them have major drawbacks. We need a good, simple to use, well-designed, fast cross-platform C library.
Do you care to start doing it? Other than doing your own, I think the most sensible choice is wxWidgets, which, from my point of view, only has one big problem: the API (i.e. code doesn't look pretty, bad C++ (no exceptions), and it can take a while to compile).
Unfortunately, I don't think I have the chops, nor the time right now. (But, fortunately, it may not even be necessary... see below.)
"Other than doing your own, I think the most sensible choice is wxWidgets, which, from my point of view, only has one big problem: the API"
That's a biggie. :) In fact, I'd go so far to say that if the API in unpalatable, then you should keep looking. Otherwise you'll end up just procrastinating every time you've got to deal with GUI code.
Thanks to posts in this thread (thanks Baltar!) I'm taking a much closer look at the most recent release of Tk (8.5). Given recent developments, it doesn't seem to be as "vestigial" as I'd thought. And the fact that it's implemented in Tcl instead of C may actually be a hidden benefit. And really, app developers never even need to be aware of the Tcl'ing going on under the covers. :)
I couldn't agree more that all of them have major drawbacks. We need a good, simple to use, well-designed, fast cross-platform C library.
Do you care to start doing it? Other than doing your own, I think the most sensible choice is wxWidgets, which, from my point of view, only has one big problem: the API (i.e. code doesn't look pretty, bad C++ (no exceptions), and it can take a while to compile).