19980314-19980404 Rick Hohensee  humbubba@cqi.com


apr. 15 1998  Pixel functions!
much renaming from quill to xart
tool window menu for access to X Graphic Context pixel functions
	* operation.c  	"Fn" menu, callbacks to set gcFunction var.
	* Paint.h  	gcFunction global variable
	* main.c   	initialize gcFunction to 3, "copy"
	* cutCopyPaste.c  XSetFunction calls for for pixel functions in
				"paste" function
	* (various)Op.c  XSetFunction calls
	* Help.txt   	attempt to explain (and understand the graphical
				actions of) minterms
more parent xvt info prompts
	* (various)Op.c text messages to xvt xart was called from with
				status and tips on current tool 	
	* operation.c   text messages to xvt xart was called from giving
				pixel function status

WHY file added
TOUR file added
CHANGES.quill renamed to CHANGES
wrote xart.lsm
fixed a bug in the makefiles for subdirs ( I hope). Thanks jcaldwel_ :o)
changed the default permissions a bit. Thanks \amethyst, and thanks for
	calling xart a "cool hack".
redundantly appended on-line help text to manpage, redundantly.
	

mar 14 1998/mar 22  Rick Hohensee http://cqi.com/~humbubba/linux.html
["to-do"'s in brackets] 
	* bitmaps
		most tool icons repainted, often using the icon's tool,
			some of which are now unintelligible in monochrome
		several additional brushes, including a few that are left
			in the plain .xpm format which causes them to
			color-alias in smudge or transparent mode if the 
			Imakefile isn't told about them. A couple existing 
			brushes were over-written with new ones. 
		BRUSHNOTE comment file in re. brush file format and aliasing
		added quillOp.xpm
		easel background xbm for paintBox area, background.xbm
		paletteknife pix for "pick from screen", not used.
		xartIcon.xpm, in main source directory. 
	* graphic.c   major re-work of canvas window
		restructured menus from "file region" etc. to
			"storage clip move filters rgb size snap bg un ??"
		single palette area with 2-button palette "pots". What a pain.
		secondary buttons overlap primaries by 4 pixels to
			reduce spam factor
		moved command buttons to right of palette area, which
			involved changing the constraints for the palette
		eliminated palette area label string
		force vertical scrollbar on palette area
		changed MIN_PAT_WH to 12, palette pot size minimum
		[verbosify rangeSelect command label]
		"scrape palette" menu item removes all but black and white pots.
		bug warning printed to calling xvt.
	* XPaint.ad.in  X resources.
		many menu labels verbosed, e.g. fill "change" to "all of color clicked",
			"fat bits" to "scope", "save" to "save(clobber orig.)", etc.
		default canvas size is 300x200
    		various window geom changes and other personal preferences
		lookup/"pick from screen" widget sized to not squish
		thinned scrollbars
		label for revert changed. Some of the palette save operations die in
			enableRevert, and I'd rather have palette editing than revert
		sorted and commented XPaint.ad.in
	* Local.config
		set fractal fill and tilt features to True
		[ they are "experimental", ffill doesn't use the colors in the palette,
			which it is supposed to, but I love it :o) ]
		added/set -Wall (Warn all) gcc option
	* quillOp.c  new file implementing the quill tool which uses XDrawPoints
	        for "nib" arrays and implements mouse motion smoothing.
		[ an XDrawLine version would support patterns, etc. and might be faster,
			but wouldn't do stuff like the "skippy" nib.]
	* operation.c   
		added some fun fonts to tool window font pulldown, like X cursors 
			and a 24 point font.
		necessary hooks for quill, menu, callbacks
		integerized info requested by transparent brush menu 	
		re-arranged tool icons into family groups
	* ops.h     necessary hooks for quill
	* brushOp.c     integer-ized smear and transparent code	
	* iprocess.c   
		rgb reductions base code 
		printf()'s for filter text history feature in calling xvt	
		added the Abuser filter	
	* cutCopyPaste.c  hooks for rgb, abuser so we're selected-region sensitive
	* image.h  prototypes for rgb routines/callbacks
	* my ( Rick's) comments in the source usually have a ## in them
	* Help.txt.in   
		general edit to reflect above
		tool families outline 
		bugs/tips section ( near the end)
		[ configuration section]
	* DefaultRC     several new colorbar patterns, added some nice neat 
		tesselation patterns in b&w, like honeycomb and a deformed
		hounds-tooth check, and an eyeball snipped from a jpeg of 
		an aspiring young actress in an audition situation.
	* main.c  version text to calling xvt
	* moved .version to version, with all the related make hooks.
	* whatever else a diff turns up :o)
	[ make selections not a "tool" if possible, so freehand tools work 
		independant of selections.]
	[ "invert selection" feature ]
	removed "revert" to original image feature, which broke some palette 
		editing stuff.
	[ tool icon choice text window history]
	[ some  form of translucent paste image]
	The "quickies" example images will be available seperately
	[ a BigPatterns palette file should be included ]
###############################################################
from here down is xart's XPaint heritage.        

Wed Sep  3 19:31:07 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* Help.txt, README, brushOp.c, chroma.c, color.c, colorEdit.c,
		dialog.c, fatBitsEdit.c, fileName.c, graphic.c, main.c, menu.c,
		misc.c, misc.h, pattern.c, text.c, xpaint.h, xpaint.man.in: 
		Added Scott Nelson's patch to allow setting the visual from the
		command line. 

Fri Aug 22 08:14:22 1997  Scott D. Nelson  <nelson18@llnl.gov>
	* Version 2.5.1 includes the -visual flag.
	* Support for standard X visual syntax.  

Wed Aug 13 19:45:37 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* ops.h, operation.c, XPaint.ad.in, Imakefile, Help.txt:
		Added DynPencil tool.

Mon Aug 11 18:09:32 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* README: Added SGI to list of platforms.

Mon Jul 14 17:37:11 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* selectOp.c: releasePolyBand(): Removed surplus 'mask' argument.

Sat Jul 12 17:56:03 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* PaintEvent.c, fatBitsEdit.c:
		Fixed bug where hot spot was offset to SE.
	* Local.config: Dont' mention DTRUNC_SNAP.

Tue Jun 24 20:30:18 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* README: Fixed .dk.dk typo (again!).

Tue Jun 24 20:20:19 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* XPaint.ad.in:	Added new font/colour scheme from Bernd Johannes
		Wuebben <wuebben@math.cornell.edu>.

Sat May 31 08:29:23 1997  Torsten Martinsen  <torsten@danbbs.dk>
2.4.9   * Version 2.4.9 released.
	* Local.config: Don't hardcode CDEBUGFLAGS.
	* Imakefile: Don't distribute PGP* files.
	* brushOp.c: Don't crash on images where width or height is less
		than that of the brush. 

Wed May  7 05:53:50 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* cutCopyPaste.c: Applied xword compatibility patch from Seth
		Alves <alve1182@cs.uidaho.edu>. 

Fri May  2 05:54:04 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* Help.txt: Updated range selection text as suggested by Rainer
		Dunker <rainer@dunker.e.ruhr.de>. 
		Changed mail address.

Wed Feb  5 19:08:45 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* brushOp.c: Set numsymbols in XpmAttributes structure.

Wed Jan 29 18:32:39 1997  Torsten Martinsen  <torsten@danbbs.dk>
2.4.8	* Version 2.4.8 released.
	* xpaint.man.in: New address.

Mon Jan 27 06:45:46 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* cutCopyPaste.c:
		If FILTERNEEDSSELECTION was defined, we got a SIGSEGV when running
		a filter.
		Reported by Sylvain Meunier <sns@sns.fr>.

Sun Jan 26 20:45:07 1997  Torsten Martinsen  <torsten@danbbs.dk>
	* main.c:
		Patch from NIIBE Yutaka <gniibe@mri.co.jp> to handle workProc()
		correctly.

Fri Nov  1 09:45:48 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Local.config: Added XPM_INCLUDE.
	* Imakefile: Added XPM_INCLUDE to DEFINES.
	* operation.c, main.c, brushOp.c: Removed 'X11' from "X11/xpm.h".

Tue Oct 29 08:59:40 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Imakefile: Added dependencies on '.version'.

Tue Oct 29 08:48:44 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* fontSelect.c: Removed arbitrary limits on number of
		fonts. Reported by Sumit Bose <bose@physik.TU-Berlin.DE>.

Fri Oct 25 13:20:32 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* fatBitsEdit.c: Fixed FatBits cursor movement bug reported by
		Hideaki Nishimura <nishimu@sdd.siznes.nec.co.jp>.

Fri Sep 27 06:17:31 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* graphic.c: Fixed numbering screwup in definition of
		regionMenu[]. Thanks to nishimu@sdd.siznes.nec.co.jp (Hideaki
		Nishimura).

Fri Sep  6 07:13:30 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* operation.c:
		Fixed bug with XpmCreatePixmapFromData() call at line 1015.

Thu Aug 29 05:24:30 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* README.PNG: Added Greg Roelofs' patch of 28Aug1996.

Mon Aug 26 05:40:41 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* operation.c:	OperationInit(): Set Xpm 'closeness' attribute
		when creating toolbox icons.

Fri Aug 23 06:08:22 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* operation.c:	OperationInit(): Check that sufficient colors are
		available for toolbox icons.
	
Wed Aug  7 07:10:07 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* xpaint.man.in: Documented the 'patternsize' resource.

Mon Aug  5 08:10:22 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Local.config: Added definition of DEPENDFLAGS.
		Added comment on AIX compilation flags.

Thu Aug  1 12:59:32 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* README: Re-included pointer to libgr.
		Encourage clear bug reports.
		Updated WWW page pointer.
	* main.c:
		SetIconImage(): Added fix from Matthias Braun: Check that XPM icon
		can be created.

Wed Jun 19 19:02:29 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Paint.c:
		InitializeProc(): Always initialize 'undo' to avoid FatBits crashing.

Tue Jun 18 10:04:47 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* rw/readGIF.c: Cleaned up formatting.
	* rw/writeGIF.c: Added error checks for each call to fputc().

Mon Jun 17 11:35:24 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* main.c: Removed call to XtSetLanguageProc().
	* INSTALL: Included new patch from Webmaster Jim.

Sun Jun  9 17:31:28 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* rw/rwTable.c: Cleaned up formatting.

Fri Jun  7 05:46:20 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* README: Upped version #.

Thu Jun  6 10:45:55 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* misc.h: Line 22: Include _AIX in #if conditional.

Mon Jun  3 07:08:12 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* README: Added info on where to obtain libraries.
	* Local.config: PNG support is enabled by default.
	* .version: Initial revision

Mon Jun  3 06:15:40 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Imakefile: Make sure XPaint.ad is made.
	* Imakefile: Make sure xpaint.man is made.
	* Imakefile: Include .version for setting version number.
	* Local.config: BSD: Added path to TIFF_LIB and JPEG_LIB.
	* readRC.c: Added prototype for mktemp() for AIX.

Sun Jun  2 08:40:10 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Imakefile: Added README.PNG.
	* imageComp.c: Added missing #define for sortABC().
	* Imakefile: Help.txt should be Help.txt.in.

Fri May 31 06:38:41 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* brushOp.c: Clear up a lot of Alpha cc warnings.
	* Imakefile: Fix include path for stupid Alpha compiler.
	* main.c: main(): argc is int, NOT Cardinal.
	* image.c: Clear up a lot of Alpha cc warnings.
	* fileName.c: Alphas use dirents too.
	* size.c:
		Fix: this should take care of the 'sigsegv-when-resizing' bug.
	* selectOp.c:
		Fix: prevents xpaint from terminating with an X-Error "invalid size in
		X_CreatePixmap" when the ellipse-shaped region is selected and one
		clicks the first mouse button on one point.

Tue May 28 09:23:16 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* xpaint.man: Now generated automatically.
	* main.c: Warning about data loss.
		Version number displayed in usage message.
	* imageComp.c, image.h: ImageCompress() takes an extra argument.
	* XPaint.ad: Now generated automatically.
	* Help.txt: Now automatically generated.
	* image.c, color.c: ImageCompress() takes an extra argument.
	* Local.config: PNG support added.
	* Imakefile: Automatic update of version # in xpaint.man and XPaint.ad.

Tue May 28 07:45:08 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* README: Improved text about needed libraries.
	* README: Version #.
	* xpaint.man.in, XPaint.ad.in: Initial revision
	* xpaint.man: Document -nowarn option.
	* README: Refer to README.PNG.
	* README.PNG: Initial revision
	* README: Added URL for XPaint.
	* Local.config:
		Added ARCH_DEFINES variable for architecture-specific defines.
	* Imakefile: Added ARCH_DEFINES to DEFINES.
	* Local.config: Removed space before argument to -L.

Fri May 24 07:33:03 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* protocol.c: Include stdio.h.
	* Local.config: Version #.
	* Imakefile: Added VERSION variable.
	* Local.config: Added Chuck Robey's BSD fix.
	* INSTALL: Added missing font fix from Webmaster Jim.

Thu May 23 15:48:31 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* main.c: Only call XtSetLanguageProc() if XtSpecificationRelease >= 6.
	* Imakefile: Removed XPAINT_TOP definition.
	* README: Refer to TODO list.
	* Imakefile: Added TODO.

Wed May 15 09:26:56 1996  Torsten Martinsen  <bullestock@dk-online.dk>
2.3?	* XPaint.ad: Cleaned out 'nudge' resources.
	Inc'ed version #.
	* xpaint.man: Inc'ed version #.
	* graphic.c: Added support for setting of pattern size via resource.
	* protocol.c: AddDestroyCallback(): Added error check.

Mon May 13 08:17:52 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Paint.c: Fixed warning.
	* README: Updated for 2.3.

Mon May 13 08:02:07 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Imakefile, XPaint.ad: Updated version number.

Sun May 12 08:17:01 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* PaintRegion.c: doCallBacks(): Fix warning.

Fri May 10 09:53:06 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Local.config: Cleaned up CDEBUGFLAGS. Removed -DNEED_STRCASECMP.
	* fatBitsEdit.c:
		FatCursorOff(): Now also works correctly for FatBits popup.
	* misc.h: Added Gary Love's patch for SGI and HPUX.

Thu May  9 11:21:44 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* brushOp.c: FatCursorOff() now takes an argument.
	* fatBitsEdit.c: Fixed FatCursor bug.
	* misc.h, iprocess.c, main.c, misc.c, sprayOp.c, texture.c, xpaint.h:
		Cleaned up use of RANDOM.

Wed May  8 09:52:40 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Local.config: Added lots of portability fixes.
	* iprocess.c: ImageSpread(): Replaced random() with RANDOM.
	* misc.h: Added SunOS 4.1 portability fix.
	* Paint.c: Fixed the 'Image/Change Size' bug.
	* PaintUndo.c: Added ERRORBEEP feature.

Tue May  7 11:18:21 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Local.config, misc.h, xpaint.h:
		Added BSD portability fixes by Chuck Robey <chuckr@Glue.umd.edu>.

Fri May  3 16:15:58 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Local.config, xpaint.h, main.c: Added Solaris patch.

Thu May  2 07:45:24 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Imakefile: Fixed tar target.
	* xpaint.man, XPaint.ad, Imakefile: Updated version number.
	* Paint.c: Bugfix: new undo stuff made FatBits crash.

Tue Apr 30 15:38:06 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* rw/rwTable.c: Removed obsolete #ifdef HAVE_XPM clause.

Tue Apr 30 11:39:12 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* graphic.c:
		undosizeOkCallback(): Changed 'Levels (1-20)' to 'Levels (0-20)'.

Tue Apr 30 11:11:32 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Paint.c:
		SetValuesProc(): Initialize undo system when changing image size.
	* PaintUndo.c: Fixed the case where undosize is zero.

Tue Apr 30 08:57:31 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Imakefile: Added xpaint.man to TEXT variable.

Mon Apr 29 05:03:50 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Imakefile: Fixed path to Local.config.

Sat Apr 20 13:02:23 1996  Torsten Martinsen  <bullestock@dk-online.dk>
2.2	* Released 2.2 to the largely unsuspecting public.

Fri Apr 19 09:56:38 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* cutCopyPaste.c: Removed testing code.
	* README: cert takes no arguments.
	* cert: Don't use arguments.
	* Imakefile:
		Prevent multiple inclusion of rw/libpnmrw.h and rw/rwTable.h in filelist.
	* PaintUndo.c: Ready for release.
	* PaintP.h: 'valid' renamed to 'pushed'.
	* Imakefile, Help.txt: Updated for release.
	* Local.config: Cleaned up for release.
	* cert: Added blurb about public key.
	* Paint.c: Undo fixed.
	* help.c: Reformatted.
	* fillOp.c: buildFractalPixmap(): Added default clause to switch.
	* INSTALL: Refer to Local.config.

Thu Apr 18 07:47:19 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* XPaint.ad: Added 'Canvas*menu*edit*redo.label'.

Wed Apr 17 19:58:26 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Paint.c: Make undo stacks circularly linked.
		Keep old canvas pixmap when changing # of undo levels.
	* PaintP.h: Removed obsolete members.
	* Paint.c: Fixes to code for changing # of undo levels.
		Cleaned up.
	* PaintRegion.c: Cleaned up.
	* PaintUndo.c: Fixed [Un,Re]doPush() bug.
		Changed 'base' to 'current'.
	* graphic.c:
		undosizeCallback(): 'Buffer' changed to 'level' throughout.
	* PaintP.h: Support new stack-based undo scheme.
		'base' member renamed to 'current'.
	* Paint.c: Support new undo scheme.
	* PaintUndo.c: Changed to new stack-based undo algorithm.

Tue Apr 16 15:11:53 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* README: Reworked completely.
	* Local.config: Cleaned up.
	* Imakefile: Added certification support.
	* Help.txt: Updated for 2.2.
	* cert: Initial revision
	* README: Updated for 2.2
	* xpaint.man: Initial revision
	* XPaint.ad: Added 'Canvas*menu*other*undosize.label'.
	* XPaint.ad: Updated version number.
	* cutCopyPaste.c: Reformatted.
		Added Redo to canvas popup menu.
	* XPaint.ad: Added Canvas*paintBox.popup-menu.redo.label.

Wed Apr  3 14:29:15 1996  Torsten Martinsen  <bullestock@dk-online.dk>
	* Changed formatting of all source to K&R.

Tue Feb 27 12:27:45 1996  Torsten Martinsen
	* color.c: ColorPickerUpdateMap(): New function.
		New member 'bg' in LocalInfo so that we only have to look up the
		background pixel value the first time.
	* chroma.c: ChromaDialog now uses the palette of the canvas.
	* grab.c: Added comments.
		DoGrabImage() returns Image *.

Mon Feb 26 22:34:47 1996  Torsten Martinsen
	* graphic.c: Added 'Select Color Range' button to the right of
		palette area.
	* fillOp.c: Fixed nasty
		'XImage-data-is-signed-so-macro-is-screwed-up' bug. 
	* color.c: Cleaned up.
	* chroma.c: ChromaDialog(): Accept a Palette parameter and use
		that for calling ColorPickerPalette() instead of ColorPicker().
	* operation.c: Removed ChromaDialog stuff.
	* XPaint.ad: Changed 'XPaint*chroma' to 'Canvas*chroma'.
	* Imakefile: Added chroma.c
	* chroma.c: Initial revision
	* selectOp.c: Split out chroma stuff into chroma.c
	* iprocess.c: Cleaned up histogram stuff.
		Added ImageThicken() - #define'd out for now.
	* graphic.c: Cleaned up.
	* color.c:
		createBarText(): Fixed value for scrollbar resource 'XtNwidth'.
	* color.c: createBarText(): Changed incorrect scrollbar resource
		'XtNlength' to 'XtNwidth'.
	* Local.config: Removed the #define HaveXPM stuff.
	* Help.txt: Added doc for Directional Smooth.
		Rearranged doc for Filter commands.
	* operation.c: OperationSelectCallAcross(): Also set the Lasso popup.
	* graphic.c: Added Directional Smooth filter.
		Reorganized Filter menu.
	* iprocess.c: ImageNormContrast(): Call ImageHistogram().
	* cutCopyPaste.c: StdRegionDirFilt(): Added.
	* XPaint.ad: Canvas*menu*filter*dirfilt.label: Added.
	* iprocess.c: ImageSmooth(): Free convolution matrix.
		ImageDirectionalFilter(): Added.

Sun Feb 25 12:53:13 1996  Torsten Martinsen
	* INSTALL: Removed USE_DRAND stuff.
	* hash.c: Removed unused code.
	* fatBitsEdit.c: FatbitsUpdate(): Accept -1 as zoom factor.
	* size.c: sureCallback(): Call FatbitsUpdate().
	* fatBitsEdit.c:
		FatbitsUpdate(): Only reposition view if the zoomed canvas is larger
		than the viewport.

Sat Feb 24 15:51:16 1996  Torsten Martinsen
	* fatBitsEdit.c:
		Changing the zoom on the canvas now resizes and repositions the
		fatbits cursor.

Fri Feb 23 11:53:28 1996  Torsten Martinsen
	* graphic.c: zoomOkCallback(): Call zoomUpdate().
	* fatBitsEdit.c:
		Added the zoomUpdate() function to correct FatBits cursor window size
		when changing canvas zoom factor.

Fri Feb 23 11:12:42 1996  Torsten Martinsen
	* fatBitsEdit.c (zoomUpdate): Added.
	* graphic.c (GraphicOpenFile): Made GraphicOpenFile() call
		GraphicOpenFileZoom instead of duplicating code.

Thu Feb 15 11:03:50 1996  Torsten Martinsen
	* fatBitsEdit.c (FatCursorSet): Free old fatcursor if present.
		(FatCursorSet): Don't insert event handlers here.
	* Paint.c (InitializeProc): Init menuwidgets member.

Wed Feb 14 15:02:02 1996  Torsten Martinsen
	* Paint.c (resources): Added resource for XtNfilename.
	* graphic.c: Removed all traces of nudge box code.
		(doRevert): Use work procedure to call XtDestroyWidget().

Mon Feb 12 11:45:23 1996  Torsten Martinsen
	* brushOp.c (wbrush): Manual clipping implemented.
		(smear): Same.

Thu Feb  8 10:33:23 1996  Torsten Martinsen
	* graphic.c: Junked EnableRevert() and EnableLast().
	* brushOp.c (wbrush): Transparent brush now has soft edge.

Wed Feb  7 13:06:34 1996  Torsten Martinsen
	* brushOp.c (setCursor): Values in brushbits array are
		proportional to distance from center of brush, normalized to a
		maximum of 100.
		(smear): Mix colours according to values in brushbits array.
		Removed FATCURSOR conditionals.
	* selectOp.c (keyPress): Detect cursor keys and move region accordingly.
	* PaintRegion.c (RegionMove): New function, called from selectOp.c
		to move region using cursor keys.
	* selectOp.c (motion): Return if event->state is zero, i.e. no
		buttons pressed.
	* cutCopyPaste.c (StdUndoCallback): If the region has not been
		moved or resized, call PwRegionOff() before doing the actual undo
		and restore the region selection afterwards.
	* PaintRegion.c (PwRegionOff): New function, like PwRegionFinish()
		but doesn't write region.
	* PaintRegion.c (writeCleanRegion): Added 'write' argument. Only
		call writeRegion() if this is True.

Tue Feb  6 12:08:19 1996  Torsten Martinsen
	* fillOp.c (similar): Returns 1 if pixel matches start pixel
		within current colour delta.
		(deltafill): Like fill(), except we use similar() instead of ==.
		(press): Added switch to handle calling deltafill() when appropriate.

Mon Feb  5 13:32:45 1996  Torsten Martinsen
	* operation.c (tfillPopup): Added option for selecting fill colour
		tolerance.
	* selectOp.c (finishPolyBand): Added call to PwUpdateDrawable() to
		avoid leaving stray lines behind.

Sat Feb  3 11:03:16 1996  Torsten Martinsen
	* color.c (update): If default visual is statically allocated,
		don't use XStoreColor().
	* Imakefile (MISC): Added XPaintIcon.xpm.
	* main.c (workProc): Added 'done' kludge to try to fix problem
		with workProc being called too many times.
	* size.c (sureCallback): Set dirty flag.
	* misc.c (AutoCrop): Added. Also corresponding menu changes in graphic.c.

Fri Feb  2 10:21:37 1996  Torsten Martinsen
	* PaintRegion.c (PwRegionAddScale): Call PwRegionTear() so that
		flipped region stays on screen.
		(regionGrab): If Shift is pressed, constrain rotation to multiples
		of 15 degrees.
		(regionButtonPress): Store root window coords in lastX/Y.
		(regionGrab): If Shift is pressed, constrain movement to
		horizontal or vertical.
	* PaintP.h (PaintPart): Added lastX, lastY members.
	* fileName.c (stdSaveCommonCallback): Show busy cursor while saving.

Thu Feb  1 11:18:30 1996  Torsten Martinsen
	* selectOp.c (finishPolyBand, pressPolyBand, motionPolyBand,
		releasePolyBand, SelectPolyAdd, SelectPolyRemove): Handles
		selecting irregular polygons.
	* Help.txt (Fill): Document change mode.
	* circleOp.c (draw): Don't draw circles just because 'center' is
		ticked. Also, simplified quite a bit.
	* boxOp.c (press): Don't draw squares just because 'center' is ticked.
	* operation.c: Only use Xpm icons.

Wed Jan 31 21:18:38 1996  Torsten Martinsen
	* iprocess.c (ImageQuantize): Completed.

Tue Jan 30 00:00:36 1996  Torsten Martinsen
	* graphic.c (doContrast): Displays histogram image in text dialog.
	* iprocess.c (ImageHistogram): Added ruler to histogram image.
	* PaintRegion.c (regionSetGripCursors): Removed second column of
		cursors array, as it was not used.
	* iprocess.c (ImageHistogram): Builds histogram for an image, both
		as an array of ints and as an image.
		(ImageNormContrast): Now assumes that ImageHistogram has already
		been called for the image.
	* image.c (ImageNewBW): Set image->isBW to True.	

Mon Jan 29 09:13:12 1996  Torsten Martinsen
	* text.c (textPrompt): (Previously TextPrompt) Extra parameter
		'pix' allows displaying a pixmap in the dialog.
		(TextPrompt): Calls textPrompt.
		(TextPromptPixmap): Entry point for displaying pixmap in text dialog.
	* selectOp.c (SelectChromaDialog): Call ColorPickerSetFunction to
		set up for calling deltaSP() when grabbing colour.
		(deltaSP): Just sets 'pixel' member in DialogInfo structure.
	* color.c (ColorPicker): Set l->map so that it works on TrueColor
		visuals.
	* main.c (SetIconImage): Removed unused 'flag' parameter.
	* xpaint.man: Description of RC file improved a bit.
	* readRC.c (ReadDefaultRC): Don't use compiled-in defaults if a
		default file is specified with -rcFile.

Fri Jan 26 11:40:26 1996  Torsten Martinsen
	* brushOp.c (setCursor): Call FatCursorSet (conditional on FATCURSOR).
	* fatBitsEdit.c (AddSegment, CreateFatCursor, FatCursorDraw,
		FatCursorAddZoom, FatCursorRemoveZoom, FatCursorSet): Routines for
		handling outline cursors for FatBits popup completed. Bitmapped
		cursors junked due to server limits on cursor size.
		Conditional on FATCURSOR.
	* brushOp.c (motion): Return if event->state is zero, i.e. no
		buttons pressed.

Tue Jan 23 01:20:59 1996  Torsten Martinsen
	* graphic.c (solarizeOkCallback, doSolarize): Added to enable
		setting threshold parameter.
	* fatBitsEdit.c: Numerous changes, all conditional on FATCURSOR define.

Mon Jan 22 10:24:42 1996  Torsten Martinsen
	* fatBitsEdit.c (FatbitsEdit): Set cursor for fatbits popup from
		parent PaintWidget's fatcursor resource.
	* PaintP.h (PaintPart): Added fatcursor member.
	* graphic.c (graphicCreate): Use ADDCALLBACK macro to simplify
		code a bit.
	* cutCopyPaste.c (ccpAddRegionFlipX through ccpAddRegionBlend):
		Junked, instead call XtAddCallback directly.
	* graphic.c (graphicCreate): Items in regionMenu are always
		sensitive whether there is a selection or not.
	* cutCopyPaste.c (stdImgProcess): If no selection, use entire
		canvas. (Old behaviour can be reinstated by defining
		FILTERNEEDSSELECTION).
	* iprocess.c (ImageSolarize): Added function.
		(ImageQuantize): Added dummy.
	* graphic.c (doRevert): Set pointer to busy shape while reverting.
		(doRevert): Set menu snap status correctly.
		(doRevert): Also save background colour.
		(graphicCreate): Get width and height of pixmap *before* using
		them.
	* brushOp.c (BrushAdd, BrushRemove, SmearAdd, SmearRemove): Store
		brushPalette and brushGC in LocalInfo structure. This
		automatically handles multiple calls correctly.
		(BrushInit): Create initial brushImage.
		(selectBrush): Free old and create new brushImage. 

Fri Jan 19 09:07:29 1996  Torsten Martinsen
	* graphic.c (rotate): Use rotateAngle instead of snapSpacing as
		default angle of rotation.
		(GraphicOpenFileZoom): Like GraphicOpenFile(), but with 'zoom'
		parameter - passed to graphicCreate(). Also returns the PaintWidget.
		(doRevert): Remember zoom factor of image.
	* brushOp.c (setCursor): Compute numpixels member.
		(BrushRemove): Fixed SIGSEGV bug.
		(SmearRemove): Fixed SIGSEGV bug.
		(BrushAdd, BrushRemove): If called more than once, behave appropriately.
	* PaintEvent.c (opHandleEvent): Made Snap round to closest grid
		line instead of truncating to next lower value. (Made conditional
		on TRUNC_SNAP define).

Thu Jan 18 09:46:56 1996  Torsten Martinsen
	* cutCopyPaste.c (stdImgProcess): Store current background colour
		in ImgProcessInfo for use by image processing routines.
	* selectOp.c (chromaCut): Commented out weird statement that
		dereferences an uninitialized pointer.
	* cutCopyPaste.c (StdRegionTilt): Added.
	* graphic.c (regionMenu): Added Tilt item.
		(tiltRegionOkCallback): Added.
		(tiltRegion): Added.
		(graphicCreate): Add callbacks for Tilt ietm.

Wed Jan 17 10:06:41 1996  Torsten Martinsen
	* brushOp.c (smear): Use XGetSubImage instead of XGetImage to
		avoid creating and destroying the XImage each time.
		The image is created by SmearAdd and BrushSelect.
		(wbrush): Use XGetSubImage instead of XGetImage to
		avoid creating and destroying the XImage each time.
		The image is created by BrushAdd and BrushSelect.
		(wbrush): Added limit check to avoid XGetSubImage crashing on us.
	* image.c (PixmapToImage): Junked 'htable' variable - never used.


Mon Jan 15 09:01:40 1996  Torsten Martinsen
	* brushOp.c (BrushSetMode): Added.
	* operation.c (brushPopup): Added Opaque/Transparent item.
	* brushOp.c (wbrush etc.): Added WBrush code.

Fri Jan 12 09:10:53 1996  Torsten Martinsen
	* graphic.c (EnableRevert): Added.
		(GraphicOpenFile): Set filename member and call EnableRevert().
		(graphicCreate): Now returns the PaintWidget. Previously, the
		return value was always equal to the 'shell' argument.
		Note: GraphicOpenFile() checks the return value of
		graphicCreate() - this is still not useful.
		(doRevert): Return immediately if the image was not changed since
		last save. Revert actually works now!
	* fileName.c (stdSaveCommonCallback): Set filename when save is
		succesful.
	* PaintP.h: Added filename member to PaintWidget.
	* Paint.c (DestroyProc): Free filename storage.
		(InitializeProc): Initialize filename member to NULL.
	* Help.txt (filterMenu): Added help for Normalize Contrast filter.
	* graphic.c (RG_CONTRAST_ITEM): Added to menu.
	* iprocess.c (ImageNormContrast): Added. Histogram equalizes
		contrast of an image.
	* cutCopyPaste.c (StdRegionContrast): Added.
	* xpaint.man: Formatting of options made consistent with most
		other X man pages. Explanation of RC file syntax improved.

Thu Jan 11 12:45:40 1996  Torsten Martinsen
	* xpaint.man: Added documentation on RC file format.
		Added doc on -rcFile -popped, and -help options.
		Also slight formatting changes.
	* readRC.c (readRC): Fixed bug where brushes in the RC file was
		treated as patterns.
	* Imakefile: Added dependencies for all object files.
	* iprocess.c (ImageAddNoise): Changed to use Gaussian noise.
	* sprayOp.c (draw): Use gauss() in misc.c. Static function gauss()
		removed.
	* misc.c (gauss): Function to produce a random normal variable.

Wed Jan 10 11:43:14 1996  Torsten Martinsen
	* Major prototype overhaul and cleanup.
	* operation.c (struct IconListItem): Removed 'callback' member, as
		it is never used.
	* iprocess.c (ImageSmooth): Uses N x N matrix.
	* graphic.c (doSmooth): Added query for mask size.
	* iprocess.c: Use ImgProcessInfo structure for parameters.
	* graphic.c (oilPaintOkCallback, ..., doDespeckle): Use
		ImgProcessInfo structure for parameters.
	* iprocess.c (convolve): Changed to allow N x N matrices. Calls
		to convolve() changed accordingly.
	* fillOp.c (buildGradientPixmap): Bugfix for Linear fill.

Tue Jan  9 10:41:16 1996  Torsten Martinsen
	* fillOp.c (buildTexturePixmap): Added Linear gradient fill.
		(buildTexturePixmap): Added Conical gradient fill.
	* Help.txt: Added help for gradient fill.

Mon Jan  8 10:00:00 1996  Torsten Martinsen
	* operation.c (tfillMenuCallback): Allows setting H/V offset and
		Pad for Radial Fill.
	* fillOp.c (TfillSetParameters): Added. See preceding entry.
	* operation.c: 	Texture Fill operator added.
	* fillOp.c (press): Extra code to handle texture fill.
		(buildTexturePixmap): This function builds a Pixmap containing the
		desired texture.
		(TFillAdd, TFillRemove, TFillSetMode, TFillGetMode): Implements
		Texture Fill operator.
	* Local.config (UseLargeIcons): Added this define to control
		search path for icon files.
	* Moved old icons to ./bitmaps/old. 

Fri Jan  5 20:22:15 1996  Torsten Martinsen
	* iprocess.c (ImageSpread): Removed 'iterations' parameter.
	* graphic.c (doSpread): Removed 'iterations' parameter, now that
		we have Repeat Last.
	* cutCopyPaste.c (stdImgProcess): Unified this with inplaceImgProcess.
		(stdLastImgProcess): Added function.
	* Help.txt: Added doc for Repeat Last.
	* graphic.c (RG_LAST_ITEM): Added 'Filter/Repeat Last' menu item.
		(doLast): Added function.
	* iprocess.c (ImageDespeckle): Added function.
	* Help.txt: Added Filter menu (oops). Added doc for Despeckle filter.
	* graphic.c (RG_DESPECKLE_ITEM): Added 'Filter/Despeckle' menu item.
	* rw/writeJPEG.c (WriteJPEG): Writing of greyscale JPEG files works now.
	* rw/readJPEG.c (ReadJPEG): Loading of greyscale JPEG files works now.
	* brushOp.c (press): Got SIGSEGV when using Brush tool before
		Smear tool had been used. Fixed.

Wed Jan  3 21:42:45 1996  Torsten Martinsen
	* rw/readJPEG.c (ReadJPEG): Prepare for handling of greyscale files.
	* rw/writeJPEG.c: Created file.
	* rw/rwTable.c (RWtable): Added entry for WriteJPEG().

Wed Dec 27 12:07:34 1995  Torsten Martinsen
	* brushOp.c (struct BrushItem): Added 'brushbits' member to store
		fast-access mask for Smear operation.
		(setCursor): Initialize 'brushbits' member.
		This fixes the 'uses-wrong-brush-mask' bug.

Tue Dec 26 22:06:54 1995  Torsten Martinsen
	* hash.c (HashAll): Out-#ifdef'd unused functions.
	* palette.c (addColor): Now this works like I think it should.
		## Are you sure?
	* brushOp.c (smear): Fixed palette allocation bug. This operation
		actually works now!
	* palette.c (allocN): Removed 'flags' parameter, as it is never used.
		(allocN): Removed 'ncolor' parameter, as it is always 1.
		(PaletteAlloc): Changed allocN() call.

Mon Dec 18 09:30:40 1995  Torsten Martinsen
	* New 40 x 40 versions of all icons. [f]blobOp bitmap files renamed
		to [f]freehandOp for better consistency.
	* brushOp.c (SmearAdd, SmearRemove): Added functions.
		(draw): Added 'if' clause to handle Smear tool.
		Added 'isSmear' member to LocalInfo struct.
	* bitmaps/brushOp.xpm: New 40x40 icon.
	* Imakefile: Made operation.o depend on bitmaps.

Sat Dec 16 17:38:49 1995  Torsten Martinsen
	* graphic.c (doSpread): Interface to Spread changed to allow
		selecting # of iterations.
	* iprocess.c (ImageSpread): Changed to perform several iterations.
	* XPaint.ad, graphic.c: Split Region menu up into Region and
		Filter menus. 	All image processing functions are now in the
		Filter menu, while the Region menu is reserved for Rotate, Crop,
		Nudge, and Reset.
	* Help.txt (smear): Added brief help text for Smear tool.
	* bitmaps/smearOp.xpm: Added corny icon for Smear tool.
	* selectOp.c (SelectChromaDialog): Don't SIGSEGV when selecting
		'Select Range...' in Select tool popup.
	* graphic.c (doRevert): Set size of image to correct values.
		Still doesn't work, though.

Fri Dec 15 13:05:35 1995  Torsten Martinsen
	* image.h (ImagePixel): Fixed nasty missing-parentheses-around-args
		bug in this macro.
	* graphic.c (doRevert): Added call to PwRegionFinish() to make
		sure the region is not active after reverting.
	* cutCopyPaste.c (inplaceImgProcess): Added this function to
		enable ImageSpread to be implemented more efficiently.
	* iprocess.c (ImagePixelize): Wrote function.
		(ImageSpread): Wrote function.

Wed Dec 13 00:01:52 1995  Torsten Martinsen
	* graphic.c: Added skeleton functions for Blend, Spread, and
		Pixelize items.
		(oilPaintOkCallback): Added sanity check for mask size.
		(addNoiseOkCallback): Added sanity check for noise variance.
	* Help.txt: Added missing doc on Oil Paint effect.
		Added doc on Blend, Spread, and Pixelize items.
	* graphic.c (regionMenu): Added Blend, Spread, and Pixelize items.

Tue Dec 12 13:01:05 1995  Torsten Martinsen
	* graphic.c (oilPaint): Added query for mask size.
	* iprocess.c (ImageOilPaint): Added variable mask size.
	* graphic.c (cropToRegion): Added function.
	* PaintRegion.c (RegionCropToRegion): Added function.

Fri Dec  8 09:22:38 1995  Torsten Martinsen
	* Imakefile: Created RWSRC etc. variables.
	* rw/readJPEG.c: Support for reading JPEG with IJG release 6 works.
		Still needs improved error reporting.

Wed Dec  6 14:03:09 1995  Torsten Martinsen
	* Cleaned up various prototypes and removed unused variables.
	* 'Add Noise' function is completed for now. Later add gaussian option.

Sun Dec  3 01:34:44 1995  Torsten Martinsen
	* random.c: Added file with RNG code from Phoenix.
	* cutCopyPaste.c (ccpAddRegionAddNoise): Added function.
		(StdRegionAddNoise): Added function.
	* iprocess.c (ImageAddNoise): Added function.
	* graphic.c: Revert function completed. Does not work if the size
		of the image has been changed. 

Sat Dec  2 18:59:25 1995  Torsten Martinsen
	* Indented all files.
	* graphic.c (doRevert): Started adding 'Revert...' item in canvas menu.


## slackware 3.2 supplies xpaint with gcc snapshot string of 950518
## and text strings stating ver. 2.1
## this version does not seqfault on   save as... in palette edit window
