noahgibbs: Me and my teddy bear at Karaoke after a day of RubyKaigi in HIroshima in 2017 (monkey scientist)
noahgibbs ([personal profile] noahgibbs) wrote2004-03-10 05:19 pm

More geeking...

I'm looking at writing some simple cross-platform GUI stuff, probably in C. Well, probably in C++ since all the decent cross-platform GUI libraries seem to require it.

Other than FLTK (which looks pretty good) and GTK+ (which sorta works on Windows, but it's not clear how well), anybody got any recommendations for a toolkit that will do (at a minimum) Linux and most common Windows flavors?

[identity profile] xarnix.livejournal.com 2004-03-18 08:20 pm (UTC)(link)
It flagrantly ignores the desire to use C, but for sake of mentioning it, SWT is a Java-based graphical interface toolkit that does a surprisingly good job on a number of platforms. If you like Java, of course. Interfacing C with it would be... circuitously icky.

Whatever happened to the toolkits of yore? Amulet, SUIT, ...

I've got no particular recommendations on C toolkits, unfortunately. GTK always seemed halfway reasonable, but I too am ignorant of its current state on Windows (or MacOS X, for that matter.)

[identity profile] angelbob.livejournal.com 2004-03-18 10:04 pm (UTC)(link)
GTK+ is pretty precarious on Windows, it turns out. Sad, really. And the rest of GNOME is essentially not there at all.

Amulet, if memory serves, was horrendously, painfully slow. Don't know SUIT offhand.

SWT is, as you say, Java. As it turns out, that mostly disqualifies it from the application I have in mind by itself. Aside from questions of portability (where C is no better) and performance (which aren't totally crucial), there's the fact that a lot of the code will be implementing a network protocol on top of TCP/IP. While I keep hearing how good Java is for dedicated network applications, my memories of its network stuff aren't fond. Perhaps there's some easy way to do it that I'm missing.

But yes, I'm no friend of Java's. It's possible that my experiences have all been bad because I've been looking at Unix stuff mostly, and on hardware-constrained systems (not Java's strong point). But so far, I'm very deeply unimpressed with Java, and the idea of trying to get a nice, crisply-responsive application that does anything beyond telnet in that language just isn't appealing.

[identity profile] xarnix.livejournal.com 2004-03-18 10:48 pm (UTC)(link)
Shoot, now I want to help work on Gtk+/Windows -- that's right up my skill-set.

For deeply embedded stuff, I suppose I should point out http://www.amulettechnologies.com/. There have been similar things over the years, but honestly most aren't much more than anyone with a bit of knowledge of Perl, HTML, and serial communications could put together.

Borland has put a lot of effort into wxWindows -- I'd assume it is usable.

(Incidentally, Keith used fltk with POSE, and it wasn't too bad -- but then POSE didn't need much in the way of its own GUI.)

[identity profile] angelbob.livejournal.com 2004-03-19 07:27 am (UTC)(link)
Hm. I'm actually planning on doing this for a desktop app, so the link you gave doesn't quite work -- I'm guessing that dedicated processor chip is hard to fit through a 10BaseT cable :-)

wxWindows (now wxWidgets) is currently my most likely choice. The runner-up is FOX. wxWindows is a little older, better documented and better developed, and has more GUI builders available, which is nice. But FOX is overall pretty comparable.

GTK+ was one I really wanted to consider, but it's just not at that maturity level. And Qt winds up costing $1500+ per year to use on Win32, so screw that :-)

FLTK isn't bad. I have a definitely preference for a lib that uses the local widget set and builds on it rather than building its own, which is probably the only reason it wasn't selected.