Rick Hohensee    xart 19980404   http://cqi.com/~humbubba
.../xart/TOUR

Where did I see a TOUR file? FreeBSD I think. What a concept. This is 
a tour of the sourcecode. 

My (Rick Hohensee's) notes in source usually have a ## around somewhere,
often in a /* ## */ .

The docs dir has some notes from Koblas on adding 
operators ( tools) which were essential to creating xart.

xart has linked transparently to the Xaw3d lib for a 3-D look of
the widgets. It slows it down quite a bit though on stuff like
drawing a new canvas window. There's a LOT of widgets in a canvas
window with a big palette.  But is does look nicer. Also, a bit of
information is lost with the 3d widgets, since the matching border
color of solid color palette pots is not preserved in the 3d
widgets. You can stick -lXaw3d or probably -lneXtaw in the
Local.config file in the same line with -Wall . I don't recommend 3d
though.
The README for the source version ofXaw3d is wrong. Put the source 
in xc/lib and do xmkmf and make. Or get a binary.

The local.config file is where you turn on/off e.g. fractal fill.
I turned on fractal fill, tilt, and -Wall.
Imakefile and Local.config are the source files for xmkmf to make a
Makefile.

iprocess.c is where the actual code of the filters is. This core
code is wrapped in stuff in cutCopyPaste.c, apparently to make the
filters selection-area-limited. The cutCopyPaste code is further
wrapped in menu callbacks in graphic.c, and may have a subcallback
with a name like quantizeOkCallback if the filter has a parameters menu.

graphic.c is about the canvas window. It is much changed from
XPaint. 

The xart.ad file gets sed/compiled into the executable, but can be
overridden in std X style. As distributed the xart.ad file is in a working
resource file format. Note that Xaw widgets have resources they might
honor that aren't mentioned by xart. xart supports the editres protocol.
editres is pretty neat. Lemme know if you know how to get editres to
actually print a current resource value.  I think the name X wants for
operators.c is the glue file for all the e.g. brushOp.c files, i.e.  the
tools.

The brushes and the tool icons are in the bitmaps dir. Brushes are
in a format which is a slight modification of .xpms. There's a note
on that in ./bitmaps. If you have a ~/.xartrc file it will be
interpreted as an initial palette. Actually, ~/.xartrc will be in
addition to the compiled-in palette. If you just use a straight .xpm
it aliases in smear and transparent brushI left a couple
"defective" ones in there for grins. The brushes now run from paintA
to paintZ, but Z is not a maximum. 

The Abuser filter is included to give the curious a filter to mess with.
It uses the convolve function matrix, and throwing junk in the matrix
can be mildly interesting. The matrix is in iprocess.c . The default 
Abuser is slightly molested Sharpen filter, which creeps up and bleeds
down a bit, and does an "invert" of sorts.

The DefaultRC file is the palette that gets compiled into the executable.
