Changes / New features in version 0.9.4:

- gtoolkit.spec: use `%defattr' to enforce correct file attributes

- GTK.h: make `gtk' instance variable of class GTK public (read only)
  (this is needed for more efficient access from inside the library)

- gtkgen: add `%exclude' to exclude methods from generated files

- objcdoc: do not emit named anchors for unknown class names

- gtkgen: do not append `With' to initializers without parameters

- gtkgen: include parameter text in error message for format errors

- GTK.h: add (public) declaration for gtoolkit_debug variable

- GTK.m: replace [isa description] with class_get_class_name()

- removed Makefile.os2 (and lib.os2) from the archive, as it probably does
  no longer work anyway; email me if you are interested in a version for
  OS/2 (with XFree86) and have a system to test it on

- gtkgen: copy comments from the C header file into the objc implementation
  file (for processing by objcdoc), this feature is currently disabled
  (most of the include files do not contain comments, and the result does
  not look very good)

- README.gtkgen: initial documentation for the gtkgen and mkclasses commands

- configure.in: replace sequences of AC_CHECK_LIB with AC_SEARCH_LIBS

- GTK.m: add gtoolkit_utf8_string() and gtoolkit_objc_string() functions,
  however, these still use ASCII encoding (contrary to what the name suggests)
  (this will change with gtk+-2.0)

- GTK.h: renamed some internal functions (move into gtoolkit namespace):
  NSString_to_String() -> gtoolkit_utf8_string()
  String_to_NSString() -> gtoolkit_objc_string()
  NSArray_to_GList()   -> gtoolkit_array_to_list()
  GList_to_NSArray()   -> gtoolkit_list_to_array()
  NSArray_to_StrVec()  -> gtoolkit_array_to_strvec()
  StrVec_to_NSArray()  -> gtoolkit_strvec_to_array()
  compatibility macros are provided, but these will go away soon

- GTK.h: renamed Gtk_to_Object() to gtoolkit_object(), the old function
  will still work for now, but is deprecated and should not be used

- gtkgen: new option `--strict': assume stricter source formatting rules,
  this will only affect the interpretation of `const' at the moment

- GTKAction.m: pass string object if argument type is GTK_TYPE_STRING

- GTKAction.m: optimize invocation code if sizeof (int) == sizeof (void *),
  which is the common case (although this is done automatically if the CSE
  optimization in gcc is used); increase MAXARGS from 3 to 6

- GTK.m: much more flexible algorithm for objc class name guessing,
  it does no longer (implicitly) rely on the typical `Gtk' prefix

- GTKApplication.m: use NSProcessInfo initialization also for GNUstep,
  but the command line arguments on GNUstep systems are still wrong

- GTK.h.in: rename file to GTK.h as it no longer needs to be generated,
  remove all class declarations that are now handled by gtkgen

- Makefile.in: switch to new options of gtkgen and mkclasses

- GTK.m: replace NSMapTable with GHashTable (which is simpler)

- gtkgen: make (even more) suitable for use with external packages:
  Alas, this turned out to be a lot more difficult than I first thought.
  As a result of this, a large portion of gtkgen had to be restructured,
  and parts rewritten. The file formats of all input files have changed
  to be more extensible (this primarily affects classes.in, and in part
  also <classname>.in and <packagename>.in), but this had to be done
  anyway in preparation for the move to gtk+-2.0, which will use the
  glib-based object system and different class name prefixes.

- mkclasses: new script: build a class table input file for the new version
  of gtkgen, which uses an extended format to describe the class properties

- GTK.h.in: rename GTK_GET_OBJECT macro to GTOOLKIT_OBJECT,
  the old macro name will still work (for now), but is deprecated

- gtoolkit.spec: initial spec file for building RPM packages on Linux

- upgrade to glib-1.2.8 and gtk+-1.2.8 (not required)

- html/*: updated the documentation for gtk+-1.2.8

- objcdoc: add document type declaration to generated files
  (plus various minor updates)

- misc/Makefile.admin: new makefile for package administration

- GTKGladeXML.m: raise exception if Glade support is not available

- renamed cleanup script to distclean

Changes / New features in version 0.9.3:

- GTKWindow.in: new method: performClose: (simulate delete event)

- Examples/menu.m: replace delete_event with performClose: (this was a bug)

- GTKApplication.m: move (explicit) NSProcessInfo initialization for
  libFoundation into the library to get correct command line arguments;
  command line arguments with GNUstep-base are wrong (and cannot be set?)

- Examples/*: remove NSProcessInfo initialization

- configure.in: test for `environ' variable in libc

- changed license of the library from Library GPL to Lesser GPL

- replace COPYING.LIB with text of COPYING.LIB-2.1 (Lesser GPL)

- GTKApplication.m: need exception handler in terminate:

- GTK.m, GTKApplication.m: resolve some thread-related problems

- do not omit type declaration even if type is `id'

- GTKObject.in: don't crash when uninitialized object is released

- objcdoc: improve HTML output (@return, @throws)

- GTK.m, GTKApplication.m, GTKGladeXML.m: replace g_error() with
  [NSException raise:format:] in some places

- gtkgen: omit methods marked `non-public' from generated files,
  allow method headers to span multiple lines in class input files

- changed license of gtkgen: now GPL + a special exception

- renamed COPYING (LGPL) to COPYING.LIB, added COPYING (GPL)

- ltconfig: correctly build shared library on Linux (libtool problem)

- upgrade to libtool 1.3.5 (+ Solaris patch)

- upgrade to glib-1.2.7 and gtk+-1.2.7 (not required)

- html/*: updated the documentation for gtk+-1.2.7

- Examples/style.m: remove obsolete gdk_colormap_alloc_color() call

- GTKAction.m: cleanup, small performance improvements, more checks

- gtkgen: allow const before object argument in header files

- Makefile.in: use `install -d' instead of mkdir to create directories

- gtoolkit.m4: autoconf macro to get GToolKit cflags/libs

- GTKItemFactory.in: widget containers created by GTKItemFactory are now
  again visible by default (without re-introducing the old visibility bug)

- GTKApplication.m: place MessageBox always in center of screen

- GTKWidget.in: new method: getWindow (get GdkWindow pointer)

- html/classtree.html: fixed invalid HTML generation in objcdoc

- GTK.h.in: add version macros (GTOOLKIT_xxx_VERSION)

Changes / New features in version 0.9.2:

- configure.in: check for sched_yield() (Solaris)

- renamed several methods: (to get more consistent names)
  arrowWithArrowType:shadowType:    -> arrowWithType:shadowType:,
  objectvWithObjectType:nArgs:args: -> objectvWithType:nArgs:args:,
  widgetvWithType:nargs:args:       -> widgetvWithType:nArgs:args:
  (together with the three corresponding init... methods) and
  queryChildArgs:argFlags:nargs:    -> queryChildArgs:argFlags:nArgs:

- Examples/xml.m: new sample program to test GTKGladeXML

- widget containers created by a GTKItemFactory (such as GTKMenuBar)
  are no longer visible by default (this actually was a bug, not a
  feature...); now it is necessary to explicitly call `show'

- GTK.m: can use custom classes in Glade files (class::name)

- GTKAction.m: allow user data argument to be retained

- GTKGladeXML.[hm]: new wrapper class for GladeXML, you can now load
  user interfaces created by Glade (this requires libglade/libxml)

- configure.in: look for libglade library

- gtkgen: small bugfixes, allow function return type on the preceding line;
  it should now be simpler to use gtkgen for other packages

- GTK.m: replace cString with NSString_to_String()

- configure.in: explicitly check for libm (AC_CHECK_LIBM)

- upgrade to libtool 1.3.3 (+ Solaris patch)

- upgrade to glib-1.2.6 and gtk+-1.2.6 (now required)

- Makefile.in: don't always regenerate classes.in, fixed dependencies

Changes / New features in version 0.9.1:

- ltconfig: correctly build shared library on Solaris (libtool problem)

- configure.in: new option `--with-extra-prefix'

- Examples/menu.m: added a toolbar and some example code to use it

- GTKApplication.m: terminate: is now thread-safe

- GTK.m: removed obsolete methods isEqual: and hash

- Examples/gless.m: added missing gdk_threads_enter/gdk_threads_leave pair

Changes / New features in version 0.9.0:

- updated all code and sample programs to use gtk+-1.2.0 features
  (this includes some incompatible changes!)

- several method names have changed to match the gtk+-1.2 function names
  (look at misc/gtk+-1.2-Changes.html for a list of these)

- additional method name changes to avoid awkward selector names, e.g.
  setColumnMinWidth:minWidth: -> setColumn:minWidth:

- GTK.m: addUserSignal: has an additional argument, the signal run type

- GTKAccelGroup now replaces GTKAcceleratorTable

- GTKMenuFactory is deprecated, use the new GTKItemFactory instead

- GTKWindow.in: set up autorelease pools for the window event handlers

- upgrade to autoconf 2.13 and libtool 1.2e

- configure.in: pass gthread option to AM_PATH_GTK autoconf macro

- more bugfixes and several minor updates to the documentation

Changes / New features in version 0.8.6:

- environment variable GTOOLKIT_DEBUG enables object allocation trace

- included misc/libFoundation-0.8.0.diff to work around some POSIX/glibc2
  problems in libFoundation

- GTK.m: test types of array contents in NSArray_to_GList(),
  now setPopdownStrings: (in GTKCombo) works again...

- gtk-tool.make: makefile rules to build GNUstep-based GToolKit programs

- GTKApplication.m: changed default behaviour to YES for delegate method
  applicationShouldTerminateAfterLastWindowClosed:

- GTKApplication.m: allow terminate: to be called multiple times

- several spelling corrections in the documentation

Changes / New features in version 0.8.5:

- Examples/gless.m: new sample program to test threads

- GTK.m: replaced gtk_signal_connect_interp() with gtk_signal_connect_full()

- configure.in: option `--with-gnustep' will build and install the library
  with the gnustep makefile package (gstep-make)

- */Makefile.gnustep: new makefiles for the gnustep makefile package

- GTKWindow.in: new delegate methods (windowShouldClose:)

- Makefile.in: explicitly set libtool mode to avoid problems with egcs-driver

- configure.in: check for NSWillBecomeMultiThreadedNotification in NSThread.h,
  use NSBecomingMultiThreaded if it is not available (gstep-base)

- configure.in: check installed gtk+ version with AM_PATH_GTK

Changes / New features in version 0.8.4:

- class list input file is automagically created from header files

- examples should now build without problems with glibc2

- configure.in: use `-pthread' option of gcc if available,
  build debug version with `--enable-debug'

- GToolKit should now work with multiple threads (with NSThread)
  (if your libc, libobjc, libX11 and libgtk/gdk/glib support that;
  since gtk+-1.0.x does not, threads currently cannot be used...)

- configure.in: test for <unistd.h> and getcwd()

- html/*: updated the documentation for gtk+-1.0.6

- GTKAction.m: added check for invalid selector

- GTKMenuFactory.in: allow objc method selectors in GtkMenuEntry

- GTKWindow.in: several new notifications:
  WindowDidBecomeMain, WindowDidResignMain,
  WindowWillOpen, WindowWillClose

- GTKApplication.[hm]: several new notifications:
  ApplicationDidBecomeActive, ApplicationDidResignActive,
  ApplicationWillFinishLaunching, ApplicationDidFinishLaunching,
  ApplicationWillTerminate

- GTKApplication now maintains the application's window list and
  main window (like NSApplication in OpenStep)

- GTKApplication allows more event loop control
  (isRunning, modal windows...)

- Examples/windows.m: new sample program (to test all the new features)

- several small bugs fixed

Initial public release: version 0.8.0

