Changes between the release that came with Python-1.3 and release
1.4.

Various bug fixes:
- The code for supporting Xm protocol hooks in Xmsupport.c assumes
  that sizeof(int) is the same as sizeof(long).  On the Alpha,
  sizeof(int) == 32 bits, while sizeof(long) == 64 bits. (thanks to
  Conrad Huang %CGL <conrad@cgl.ucsf.edu>)
- Import Xt module from other modules.
- Some Athena widgets didn't exist in X11 Release 4.
- The XmTraverseObscuredCallbackStruct structure only exists in Motif
  1.2.
- SetClipMask now accepts None as argument to clear the clip mask.
- CallCallbacks expected a string as second arg.  This is now a
  callback object.  (thanks to Greg Couch %CGL <gregc@cgl.ucsf.edu>)
- Fixed (hopefully) problem with exiting from Xt.MainLoop with an
  exception.
- Fixed a bug with constraint resources (thanks to Peter Dekkers
  <dks@mh.nl>).
- Fixed a bug in the workproc callback.

Additions:
- Support for pixmap resources. (thanks to Conrad Huang %CGL
  <conrad@cgl.ucsf.edu>)
- Support for in-line images in HTML widgets (see Demo/misc/pwww.py).
- Support for NCSA Mosaic 2.7b2 release (needs define--see
  HTMLmanual.h).
  Support for NCSA Mosaic 2.7b4 doesn't work properly yet.
  Mosaic-2.6 works best.
- Implemented GetLinks method for HTML widgets.
- Implemented GetActions method for HTML widgets (needs patched
  libhtmlw).
- Support for X Regions.
- Implemented WriteBitmapFile method for Pixmap objects.
- Implemented InitializeWidgetClass method for widget classes.
- Implemented WidgetList and AtomList resource types.
- Implemented several callback function resource types.
- Implemented Actions and Translations.
- Implemented ActionHook support.
- Implemented Motif Drag and Drop (not heavily tested).
- Removed documentation for GetChildren method since the children
  resource works now (the method still exists, for now).
- Implemented GetAtomName method on Display object.
- Implemented selections.
- Implemented GetXmDisplay method on Display object and GetXmScreen
  method on widget object when Xm is imported.
- Implemented Xt.AppInitialize().
- New module Xrm that interface to the X Resource Manager.
- Added Xt.SpecificationRelease, Xm.VERSION, Xm.REVISION,
  Xm.UPDATE_LEVEL, Xm.Version variables.
- Support for various extra resource types.
- and no doubt some that I forgot to mention.

Changes between the release that came with Python-1.2 and the release
that came with Python-1.3.

Various bug fixes:
- Fixed lack of one indirection in conversion routines from Motif
  types to Python types.  (thanks to Phil Miller <pm@fox.cen.com>)
- When the optional arguments were not given to CreatePixmap, it made
  the interpreter dump core.  Also, the default value of the depth
  argument now comes from the depth of the underlying widget instead
  of the screen.
- Initialize WidgetClasses using XtInitializeWidgetClass instead of by
  creating and destroying a widget.
- Use Xt error database for fatal errors (and don't use vsprintf which
  doesn't seem to work on Data General).
- In conversion from Xt types to Python types, handle integral types
  with a size equal to ints seperately (i.e. don't assume that ints
  are equal in size to either longs or shorts).  (thanks to Conrad
  Huang %CGL <conrad@cgl.ucsf.edu>)
- XmMainWindow widgets didn't have the MainWindow methods.
- Fixed a memory leak in Add*/Remove* functions.  The callback
  arguments were never freed.  This was especially bad in AddTimeOut
  where the callback was only used once.

Callback arguments and XEvents are now proper objects.  The XEvent
module is not needed anymore, and neither is the function
Xlib.getevent.  They have been removed accordingly.

The continue_to_dispatch parameter of event handlers is now dealt with
via the return value of the callback.

New module Mrm with demos in the Demo/mrm directory.  (thanks to Bob
Novas <rgn@fox.cen.com>)

New demos in the Demo/browse directory.

New HTML method GetImageSrcs.

HTML method GetText now takes an optional second argument if compiled
against the Mosaic 2.6 sources.

New widget method Name.

New widget methods AddGrab and RemoveGrab.

New widget method GetChildren for Composite widgets.

New display methods Synchronize and InternAtom.

In C, event handlers are called with a pointer continue_to_dispatch to
a boolean.  If the boolean is cleared no further event handlers are
called.  In Python, if the event handler returns an integer, the
boolean is set to that value.  By returning 0 the boolean can be
cleared.  (Note that this is different from not returning anything.)

Documentation has been extended.


Changes between first release and the release that came with
Python-1.2.

This is a, no doubt incomplete, list of changes between this release
of the X extensions to Python and the previous one.

- There is documentation!

- The module Xm does not contain any functions anymore.  Instead, the
  functions are now widget methods.
  The cv.py script deals with these.

- Some of the memory leaks have been plugged.  Widget objects are now
  actually deallocated when no longer used.  Callback arguments are
  now deallocated when all widgets that used them are deallocated.
  Motif compound strings (variables of type XmString) are now freed
  when they are no longer used.  Probably not all leaks have been
  plugged.

- Functions in Xlib that deal with Display variables are now methods
  of a new Display object.
  Affected functions:
	CheckMaskEvent
	NextEvent
	PeekEvent
	PutBackEvent
	Flush
	CreateFontCursor
	ConnectionNumber
  The cv.py script deals with these.

- More functions have been implemented.

- Bugs have been fixed.  (I suppose some new bugs have been
  introduced, though. :-)

- When a widget is destroyed, all its child widgets are also
  destroyed.  The interpreter now keeps track of destroyed widgets and
  raises an exception if anything is tried on them.

- Instead of using fontobject.fid, you should now use the fontobject
  itself.

- Some methods require a pixmap argument.  It used to be left as an
  excercise to the programmer to obtain the proper pointer value.  Now
  you can (must) just specify a pixmap object.

- ReadBitmapFile now returns a pixmap object as one of the elements in
  the tuple.

- Many new methods and functions.

- Many new Motif widget methods.

- The XC_ prefixes have been removed from the names in
  Lib/Xcursorfont.py.
  The cv.py script deals with these.

- The __methods__ variable now gives all widget methods instead of
  only a subset.

- The module HTML only contains a few functions now.  The other
  functions are now methods of HTML widgets.  The cv.py script deals
  with this.

- Widget methods are only methods of widgets for which it makes sense.
  (E.g., FileSelectionBoxGetChild is a method of XmFileSelectionBox
  widgets, and of no other.)

- The Window Attribute object has been removed.  Instead, the
  ChangeWindowAttributes widget method now accepts a dictionary where
  the keys are the names of the struct members that are to be changed,
  and the values are the new values.

- Constraint resources and Motif secondary resources are now
  understood so they can be set.
