Work Stuff:
I've finished cleaning up the middle-tier architecture; it
doesn't work any differently, but it's much more modular
and efficient now. Plus I fixed a transaction bug that
could have bitten us down the road. I've got a short week
this week (only Monday and Tuesday), so I need to kick in
the afterburners and get this stuff done.
Personal:
Until I can get a KVM switch, I've moved my old Linux box
(a P120 w/ 48MB of RAM) into the utility room. It's just
too much hassle switching cables back and forth, and I'm a
little worried that the connectors will get fatigued. My
main box (a Celeron 500) will now have to host both my
Win2K and my Linux stuff. I generally don't like to dual-
boot, but I suppose I can live with it until I can get a
KVM switch. Belkin makes a good one, so maybe I'll order
that.
It's amazing how attached you can get to some particular
GUI widget. I really like the TreeView widget, but it
seems that FLTK doesn't have one! It's not really that big
an issue, it was just kind of surprising. There's a lot to
like about FLTK, by the way. It's a C++ toolkit like QT,
but much thinner. It's designed to be statically-linked
(although it works fine as a dynamically-linked library
too), so all dependencies are kept to a minimum. It has
the look'n'feel of the old XForms toolkit somewhat, but
cleaner.
At some point, I suppose, I'll have to bite the bullet and
settle on one toolkit or another. Here are the
strenghts/weaknesses of the contenders as I see them:
Motif
=====
Blah. Not even under consideration.
QT
==
Advantages: well-designed, fast, and elegant. The
Designer
is a great tool for building GUIs and seems to generate
pretty good code.
Disadvantages: Needs a preprocessor (moc) to implement
the
signal-slot mechanism. Not so much an operational issue,
but it can generate some pretty ugly code. Also,
performance can suffer due to this mechanism, although in
normal use it isn't really an issue.
GTK+
====
Advantages: Pretty good object design, considering it's
written in C. Lots of widgets. Pretty fast. Glade is
coming along as a GUI builder too -- it's usable for about
90% of what I need.
Disadvantages: no good C++ bindings yet. GTK-- is not
quite there yet, and Inti seems to be even further behind.
GTK+, like Motif, relies on callbacks for events, and there
are inherent type-safety problems with this.
FLTK
====
Advantages: very small and lightweight toolkit. Native
C++
implementation (although it does use a C-style callback
mechanism for events). FLUID, the GUI-builder, is pretty
good.
Disadvantages: the widgets aren't quite as extensive as
in
QT/GTK+. Callbacks are used for events, and the STL is not
leveraged.
Personally, FLTK seems to be a contender: it's a C++-native
toolkit, it's small, and it seems to be well-maintained and
robust. It won't integerate into GNOME/KDE as well as I
might like -- DnD is sure to be a problem -- but then again
this project doesn't really need a high level of
integration anyhow.