- Xew-3.1 14 Feb 1995
	Miscellaneous speedups:	Region no more used for exposed area
	tracking in TextImport.c (deleting large text sections was
	horribly slow due to excessive XUnionRectWithRegion calls).
	TextImport.c keeps track of changes to the current position while
	insertion point is open, no need to compute location -> offset
	after every editing action.

	XtNactivationCallback and activate() action have been added to
	the Basic class. This callback is intended purely for the
	application needs through the explicit use of activate() in
	translations, it will never be generated by the internal widget
	reasons. [ The notifyCallback is also generated from internal events,
	in addition to the notify() usage in the translation tables.].

	Basic.c _XeOpenContent did not zero content->length, if no
	content is present (application could crash XeText by setting
	non-zero contentLength resource without any content).

	ISO 6429 JFY "word fill" parameter implemented. This allows
	the text content to override the resource value 'format:False'.

	XeTextLocateTag and XeTextSetInsertionPoint functions.

	RasterPBM import has been changed not to read the whole raw image
	into memory before converting (ASCII format PBM files are really
	large). Also in all Image import routines, XtMalloc's for the raw
	image data have been changed to malloc's and return checked
	(recovery is not perfect, this needs more work).

	Do text layout in XeTextEnableDisplay only if content has been
	modified during disabled time, and do only partial layout if all
	changes have been made into single insert point.

	In Text.c/SetValues, distinguish between resource layout and just
	plain redisplay changes. And core width/height will only be changed
	if layout occurred. In TextImport.c unmanage insets being destroyed
	to avoid unneeded ChangeManaged calls from the Phase Two destroy.

	If highlighting was with changed background color, Text.c expose
	didn't do the right thing with real, normal expose events. Also,
	disable highlight if insensitive is set.

- Xew-3.0 14 Jan 1995
	New actions for XeTextEd: pointer(), hightlight(), unhighlight().
	pointer() will move the current position to the pointer. The latter
	are usefull when TextEd is used as a command button (bind to enter
	and leave window events).

	Text 'enable_display' flag moved from TextEd private space into
	Text private space (if display is disabled, it should also prevent
	generation of expose events when children of XeText are
	repositioned).

	GB2312 encoding name was incorrectly specified as "gb2312-1980-0"
	instead of "gb2312.1980-0" (TextImport.c).

	Video (MPEG) input algorithm changed. It will block on input, if
	it runs out of data (previously it terminated at that point).

	The widgets can be subclassed from XmManager by defining a compile
	time switch USING_MOTIF_122. These changes were provided by Susan
	Liebeskind <shl@cc.gatech.edu>.

	The resource values contentFilter and contentFile strings are
	now copied in Basic.c into private storage.

	LineLayoutTable (XeTabStop) resource converter finally written.
	Additionally, if LineLayoutTable exists and normal HT uses it,
	then the full XeTabStop specification will be in effect for
	that text portion.

	Fixed Single Shift functions SS2 and SS3 in ccfilter.c (these
	controls did not work correctly).

	CodeSwitch generation in TextExport worked only for G0/GL
	designations (failed to generate switching between iso8859-x
	variant GR parts, for example).

	Implemented resources XtNclipX, XtNclipY, XtNclipWidth and
	XtNclipHeight in XeRaster.

	In XeText the "framed" rendering has been enchanced to use the
	same border specification as used by Frame borders. The new resources
	controlling the rendition of the "framed" text are: topFramedRendition,
	bottomFramedRendition, leftFrameRendition, rightFrameRendition (are
	XeFrameBorder type), topShadowContrast and bottomShadowContrast.
	Also, renderings break only end at EndOfLine (now text separated by
	tabs is continuously underlined, instead of individual sections).

	XeBasic class has now been changed to a subclass of Constraint
	widget (instead of plain Core). This is to allow Text(Ed) have
	embedded widgets in the text stream.

	RasterTIFF now supports TIFF input from a in-memory content.

	Some C++ conflicts fixed. In Text.h, the 'old' and 'new' fields
	XeTextLayoutCallbackData have been changed into 'previous' and
	'current' ('new' is reserved word in C++).

	The first support for applications that want to modify images.
	Add XeCR_RASTER_IMAGE "notify"-callback to RasterImport.c. This
	callback is primarily added to enable direct loading (or modification)
	of the raw image before the display is generated. To totally
	load image programmatically from the application, use 
	XeContentFormat_UNKNOWN (see XeRaster programmatic interface
	for details). XeRawImage structure has been made public in Raster.h
	and the first basic programmatic interface functions have been
	added (XeRasterGetRawImage, XeRasterSetRawImage, XeCreateRawImage
	and XeDestroyRawImage).

	TextLayout.c/Text.c. The font_cache has been changed from widget
	specific to display specific (this should speed up applications
	that use *many* text widgets). Now the cache gets flushed only if
	the display changes. (This doesn't much help: there is increasing
	need to make a faster FindFont.) In Text.c the XeCvtStringToFonts
	has been changed from XtCacheNone to XtCacheAll (because FontList
	is used as part of cache key, and same font list should have same
	internal representation). Because the cache now lasts longer (all
	XeText widgets in same display), the size has been increased from
	97 to 211. Only cache is static global now (allow multiple
	_XeTextLayout's at same time, e.g. it is now safe to cause layout
	called from callbacks)

	In TextImport.c, for CR/LF/etc, force new Snip if TAG differs
	from the current one (empty CR can now be used to generate a marker
	for tagged content that is totally generated by layout callback).

	Many changes in XeFrame layout logic. The fixed position childs
	will affect the requested size of the frame also (ignored these
	before in size calculation). XeFrame erroneusly requested resize
	for computed size, even if it itself was specified with fixed
	dimensions (changed not to request resize if dimensions already
	match the fixed dimension).

	cursor resource was not set in Realize method.
	(J.K.Wight@newcastle.ac.uk)

	LONG_MAX was incorrectly defined in TextEd.c, if it didn't become
	defined by system headers (J.K.Wight@newcastle.ac.uk)

- Xew-2.2 17 June 1994
	The 90 and 180 degree rotations were incorrectly computed into
	channel structure, causing the image operation to access random
	data at some at one edge. (fixed in _XeImageMirrorRotation).

	A new faster matches function into TextFont.c from Douglas A
	Lewis (dalewis@acsu.buffalo.edu). (Swiped from IRC develoment).
	
- Xew-2.2alpha2	17 May 1994
	Raster resize method erroneusly sometimes modified core width or
	height Fixed.

	Changed DefaultRootWindow to RootWindowOfScreen everywhere. Allows
	widgets to work correctly with dual headed systems. Thanks to 
	frans@kiwi.uia.ac.be (Francois Staes) for pointing this out.

	Text widget now implements height parameter of the ISO 6429 GSM
	(Graphic Size Modification). One can now change the font size
	by giving the percentage of the change from the value specified
	by the fonts resource. For example, after "<CSI>200<SPACE>B"
	characters will be double height.

	In TextEd.c new programmatic functions: XeTextEnableDisplay,
	XeTextDisableDisplay and XeTextDisplay.

	In TextLayout.c the processing of the application inserted layout
	information was incorrectly processed (still a bit shaky fix).

	RLE support hooks added by Jim Barber <barberjd@cs.curtin.edu.au>.
	(You need Utah Raster Toolkit libraries installed separately).

	In TextEd.c the cursor location logic has been changed. The same
	virtual position may correspond two different cursor position
	depending from which direction the point is approached. This
	affects also the default mode that text will inherit, if insert
	is made at that point.

	XeBasicScaling changed into _XeBasicScaling and parameters
	changed to include the window dimensions instead of accessing
	them directly form core class (enables the use of function in
	Geometry handling to compute proposed geometries).

	Internal content accessing functions _XeOpenContent, _XeGetContent
	and _XeGetContentCopy have been added into Basic.c. All widgets,
	except Raster/TIFF now support all content input methods (String,
	Stream, File and Filter). TIFF only works for contentFile.

	A new contentFilter resource implemented. This resource value is
	checked last, after contentFile. If specified, the value
	is assumed to be a shell command, and the string is given to 'popen'
	and the std output from the command will be the content.

	First try at Constraint subclass XeFrame.

- patch #1 -	22 March 1994
	A bug in RasterPBM.c fixed (allocated wrong size of memory for
	PGM images).

	XeTextInsertPrefix function implemented. This function sets the
	prefix string that will be automaticly inserted before any input
	after a new insert point is opened. (The prefix should only contain
	control sequences.)

	Added characterset encodings "default-1" and "default-2". These
	are used if an unrecognized designation occurs (for one byte and
	multibyte (two bytes) encodings). Both encodings will use the bytes
	in source as they are. (The change was necessary to make it
	possible to use BIG5 encoded content.)

Version 2.1	11 March 1994
	Fixed a bug in Itemization processing (TextLayout.c).

	Restored rasterWidth and rasterHeight resources (these are just
	read only, setting them has no effect) into Raster.

	In TextEd.c use direct calls to Redisplay (expose method) instead
	of going trhough the server by XClearArea with expose request.

	In Text.c inverted attribute is now implemented by flipping the
	current background/foreground colors for the text (even if uglier,
	because spaces don't get inverted, it is at least consistent when
	applied to the colored text). There is still a lot of flicker when
	the widget is resized.

	Use ColorQuantize_FAST for non-JPEG images, if JPEG has been
	requested (used PPMQUANT before). Treat XeColorMode_NONE as if
	XeColorMode_COLOR was requested.

	Add exposeCallback resource into Basic. A test implementation
	support in XeBasic, XeRaster, XeText, XeTextEd and XeVideo widgets.
	(XeBasic can now be used a bit like blank drawing area, for other
	widgets the callback is made after all widgets own expose processing
	has been made).

Version 2.0	1 March 1994
	Widget set documentation updated to the current level of
	implementation.

	In TextFont.c the max number of fonts queried from the server
	has been increase from 1000 to 2000. This is still temporary
	solution, this should be application resourse or at least something
	the user can change and not a hardcoded constant.

	Resources colormapUse, colormapInstall, maxColors, colorQuantize
	and visual have been move to Basic class and from Raster. New
	resources rotation, mirrorImage, colorMode and useShm added. The
	enumeration names and strings for colorQuantize have been changed
	from the previous version (see the documentation).

	In Basic.c, the file to flow handling didn't work if feed
	function told to hold all buffered data (that is, feed didn't
	accept anything). fixed.

	Sample Video widget implementation using Berkeley MPEG decoder.
	
	The support hooks for the tagged text applications added into
	XeText and XeTextEd. A new callback resource XtNlayoutCallback
	and two callback reasons associated with it have been defined:
	XeCR_LAYOUT_CHANGE_TAG and XeCR_LAYOUT_BEGIN_LINE. Both callbacks
	use XeTextLayoutCallbackData. LAYOUT_CHANGE_TAG callback is generated
	when the layout process passes over a change of tags.
	LAYOUT_BEGIN_LINE is generated at the beginning of each line box.
	In both callbacks the application can insert layout content at that
	point into the layout process. The inserted layout content can
	contain any text and controls, all normal ISO 2022 and ISO 6429
	controls can be used. User cannot edit layout content and it
	is not exported to selections or cuts. Tagged data can be
	inserted programmatically using the function
	XeTextReplaceTagged and extracted using the function XeTextExtract.

	Initial state processing changed. The text.init field from the
	Text widget record has been removed.

	In XeText the itemization resource value is made local to the
	widget instance (the pointed value is copied, instead of
	using the pointer directly). XeAlignment_NONE added to the
	XeAlignment enumeration to be used as default/none indicator.

	Purify revealed memory leaks and reads referencing past
	allocated memory fixed (Raster24to8.c, RasterLayout.c and
	TextLayout.c)

	XeCvtHorizontalDimension changed into XeCvtHorizontalValue to
	allow signed values.

	New control sequences: RS (for Paragraph marker), JFY and QUAD
	from ISO 6429 experimentally implemented. The support for Paragraph
	concept: A new 'endseq' type Snip_EndParagraph has been added.
	It works exactly the same as Snip_EndLine, except addition it
	re-enables the first-line-offset and itemization processing for
	the next line. On input, RS (ctrl-^) converted to EndParagraph
	sequence, and if COMPOUND_TEXT export is enabled, it is exported
	as RS; on STRING two LF's is used instead.

Version 1.5	30 Oct 1993
	Vendor.c removed from the package. The presense of it caused
	some problems when linking with MOTIF widgets. Currently assume
	that Xew will not be used alone and does not need the Vendor.c
	at this point.

	The functions relating to importing of text and interpreting the
	control sequences changed into re-entrant code (old code didn't
	allow intermixed loading of multiple text streams). Affected
	ccfilter, Text, TextEd and TextImport modules. A major redesign
	of the ccfilter interface.

	columnWidth resource added to the XeText widget. Needed because
	the width of widget is not always the right width to set the text.
	Effective only, if set to NON-ZERO.

	Handling of HT (Horizontal Tab code) modified. Now it will work
	even if inserted into middle of flowing text. HT does not turn
	off line wrapping for that line any more.

	ccfilter.c/ccf_reset didn't initialize MultipleByte processing.

	Added XtNnotifyCallback resource to the XeBasic widget. The default
	translation is
		<Btn1Down>,<Btn1Up>:	notify()
	Text.c, Raster.c and Audio.c changed to support NotifyCallback. In
	Audio the toggle events changed from button Up to Down events.

	Added magic ".snd" to return XeContentFormat_AUDIO in Support.c
	function XeFindContentFormat.

	Text Widget now implements contentLength and contentOffset
	resources. Implementation decision: the length is counted
	from the given offset forward.

	Editable text widget class XeTextEd (TextEd.c) is a subclass of
	standard XeText widget. See a separate temporary documentation
	about the supported features (TextEd.doc).

	In Text.c, when calling the TextImport, the context block address
	was never saved and given to XeTextEndContent (widget address was
	incorrectly given instead).

	In RasterLayout.c, the support for FullColor on TrueColor visual
	incorrectly tested bits_per_sample, instead of bits_per_component.

Version 1.4	6 May 1993
	Audio widget changed extensively, still only support is for the
	SUN /dev/audio. It directly controls /dev/audio and there should
	not be any blocking of X Event loops. Two button events recognized

		Btn1up	TogglePlay	FREEZE <-> FORWARD, and if audio
					has layed the content, will cause
					 restart from FORWARD (instead of
					toggling it into FREEZE)
		Btn3up	RestartPlay	Forced restart, will flush output.

	RasterJPEG.c will now take input also from contentString and
	contentStream resources (only contentFile worked before this).
	TIFF content still has to become from a file.

	In TextLayout.c fixed bug in superscript computing. (Never
	do '-x/y' when x is unsigned. Instead use '-(x/y)' ...blah!).
	Ascent/Descent related things changed from 'Dimension' to 'short'
	(this fixed some buggy linespacing computations).

	The expose method in Text.c improved. Now it uses region and
	XSetRegion, and only draws text that has a chance to intersect
	exposed area. [ Introduced also a bug: inversed text sometimes
	disappears due to double drawing with XOR; cannot yet see how
	this can happen, waiting for inspiration... ]

	Fixed some complains produced by DEC CC compiler on DEC/OSF1.

Version 1.3	17 Apr 1993
	Added a new resource to XeRaster that controls the color quantification
	of 24 bit images: XeRaster.color_quantize. Four symbolic values defined
		"fast"	XeColorQuantize_FAST	F-S dithering (default)
		"best"	XeColorQuantize_BEST	ppmquant (may not work)
		"slow"	XeColorQuantize_SLOW	~ Heckbert's median cut
		"jpeg"	XeColorQuantize_JPEG	JPEG internal CQ for JPEG's
	(Note: the "jpeg" is effective only at import phase).

	More visuals supported.

	Expose method improved in Raster.c. Now only exposed rectangle of
	the image is sent to the X server. Also, RasterLayout now called
	only when needed (and not after every set_values; change was needed
	to get porthole-panner work reasonably).

	Fixed GrayScale bug in RasterJPEG.c. (Core dump from put_color_map).
	Implicit color quatification removed, JPEG color images are now
	brought to the main body as full color images.

	Adding units handling into Basic.c. (not activated yet)

	Added error handling initializations of e_methods in RasterJPEG.c
	which were missing (pointed out by Tom Lane).

Version 1.2	1 Apr 1993
	Private Colormap handling is now done either with XInstallColormap/
	XUninstallColormap or with XtSetWMColormapWindows. The default is
	to use the latter method. If the Window Manager does not honour
	the WM_COLORMAP_WINDOWS property, widget can be instructed to use
	colormap install/uninstall functions directly by setting the
	resource colormapInstall to True (this is False by default).

	When Audio content was specified with contentString resource, the
	widget only played a short section of it. Fixed now.

	XtNVisual resource has been added to XeRaster widget. Now
	individual images can use different than default visual. The visual
	resource can be set only before the widget is realized. The default
	value is inherited from the shell widget.

	A new attempt for TrueColor support into RasterLayout. It is
	slow and not complete, but if the idea works, it will be
	improved. (only tested with SunIPX 8bit TrueColor visual)

	Xew now compiles also with K&R C compiler (non-ANSI).

	X11R4 support better now (the attempt in v1.1 was buggy)

	XeDataFlow to file has been changed to use non-blocking I/O,
	improves usability of Audio widget somewhat...

Version 1.1	16 Jan 1993
	Implementation of Audio widget using Sun /dev/audio directly.
	This is mainly for testing the idea of attaching input/output
	streams to a widget using XtAppAddInput.

	Swiched to use jpegsrc.v4

	Some simple #if's added to make it easier to compile this
	package under X11R4 (this is still incomplete).

	Fixed occasional one pixel overwrites in scaling functions
	in RasterLayout.

	Fixed division by zero in XeBasicScaling, if width/height=0

	In RasterJPEG, do not feed MaxColours resource to JPEG
	quantizer. Just always quantize into 256. (Deal with
	true color later).

	RasterLayout for TrueColor worked only for 24 bit pixels,
	fixed it to work for 32 also.

VERSION 1.0	15 Dec 1992
	Changed the order of content checking into String-Stream-File,
	as specified in the documentation. Was reverse in Text widget.

	The initial state defined by graphicRendition resource is
	taken to be the	default state requested by SGR 0.

	First crack at adding implementation of SGR 30-37,39, 40-47,49
	(text foreground and background colors).

	Destroy methods for Text and Raster Widgets added.

	Fixed ISO 6937 supplementary set handling (which didn't work
	at all when the non-spacing accents were used), some conversions
	were also broken.

	Added support for the Swedish/Finnish ISO 646 national variants
	as an example.

VERSION 0.12	30 Nov 1992
	(First source release)
