
           ***** Gtk-- Drawing Widgets v0.4 alpha *****


These are some Gtk-- widgets that I have been working on and that others
might find useful, or at least fun to play with.

This code was developed using gtk+ 1.0.4 and gtk-- 0.9.7.  Earlier or
later versions may break this code.

There is, of course, no documentation.  I've tried to put a lot of
explanatory comments in the source.  There are also small sample
programs (in the ./examples directory) that you can look at.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

If you've use a previous version of these widgets, you'll be annoyed
to learn that everything has changed and none of your old code has a
prayer of working.  In fact, the whole underlying paradigm has
changed, so your code will require extensive revision to get it going
again.  Isn't using alpha code fun?

The original design goal of this package was to produce widgets that
made it fairly easy to write "drawing-type" programs under Gtk--
fairly quickly.  The original Gtk_Canvas widget was an attempt to
realize this goal.  It started out as a widget that would just take
care of a window's backing store for you...  but then more drawing
commands and GC manipulation stuff got added.  Before long, Gtk_Canvas
had grown into the kind of bloated "monolithic class" that is the bane
of good C++ programs everywhere.

Another problem was that the term "canvas" was being overloaded.  When
most programmer-types think of a "canvas widget", they think of the Tk
canvas, which implements a sort of object oriented drawing model where
you put down lines, circles, etc. on the screen and then can
manipulate them... a totally different approach than what I had done.
Then I found out that the Gnome people has their own widget that they
were calling a canvas.  Chaos seemed inevitable.

After a few months away from my code, I returned to it and redesigned
everything.  Instead of having a gigantic canvas widget, I've split
things apart.  The current widgets are now much more akin to C++
wrappers around parts of the Gdk code, something that Gtk-- has been
lacking.

However, I've deviated from the path of pure wrapper-writing, and I've
added functionality whenever I thought it would be useful.
Eventually, all of the extra functionality should be moved back to
gtk+ and gdk.  And once we get the kinks worked out of these widgets,
maybe part of this library should also be merged back into Gtk--, or
turned into Gdk--, or whatever.  But I don't want to get ahead of
myself here... for now, I'm going to focus on getting this package to
work well and be useful.

The support for plotting has also undergone significant changes.
Simple support for drawing plots into a window (or any other
"drawable") is supported via the Plot_Area class.  All of this code
was written for use in a full-blown Gtk-- based plotting and data
visualization tool named "Guppi" that Havoc Pennington <hp@emccta.com>
and I are currently working on.  When it actually does something,
we'll release an alpha version.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

For more information, see:

My Gtk page
        http://www.emccta.com/~trow/gtk.html

The Gtk-- home page
        http://www.cs.tut.fi/~p150650/gtk/gtk--.html

The Gtk+ home page
        http://www.gimp.org/gtk

E-mail me any bug reports, patches, comments or suggestions.  And I'd
love to hear from you if you use these widgets to do something useful
or interesting.

Good luck!

- Jon Trowbridge <trow@emccta.com>
  July 14, 1998




