Last stable release:
Last unstable release:
0.19.0 (May 10th)
new GNOME bindings for the Java language
- March 24th, 2004 • Gnome-GCJ 0.16.0
This is a maintenance release just to fix some licensing issues. Now, the
gcjwrapper tool is licensed unter the terms of the GPL while the libraries
are kept under the LGPL.
- July 22nd, 2001 • Gnome-GCJ 0.15.0
A maintenance release to make it possible to compile Gnome-GCJ with gcc 3.0.
Gnome-GCJ no longer contains any files from GNU Classpath, libgc,
GTK+ and GLib. As a result of this, LICENSE and COPYRIGHT documents
Fixed many autoconf/automake-related build-problems.
Fixed a bug in the ConstantResolver causing the ConstantCodeGenerator to
fail without reason.
New classes: ColorContext (GDK).
New methods in other classes: Event, GdkMain, GdkWindow
New test programs: EntryWindow (part of TestGTK).
- 2000-09-02 • Version 0.14.0
Constructors in many classes are now public (used to be
New classes: AppBar, Canvas, CanvasItem, CanvasGroup,
ColorPicker, DateEdit, DEntryEdit, Druid, DruidPage, DruidPageFinish,
DruidPageStandard, DruidPageStart, FontPicker, FontSelector, Guru,
IconEntry, IconList, IconTextItem, IconSelection, NumberEntry, Spell,
SpellInfo (GNOME), TargetEntry (GTK+).
New methods in: DragContext, GdkPixmap (GDK), SelectionData,
New test programs: TestDND, a Java implementation of the GTK+
program testdnd (almost complete). CursorsWindow, part of TestGTK.
- 2000-08-31 • Version 0.13.0
New GDK classes: ButtonEvent, ClientEvent, ConfigureEvent,
CrossingEvent, DNDEvent, DragContext, Event, ExposeEvent, FocusEvent,
KeyEvent, MotionEvent, MouseEvent, NoExposeEvent, PropertyEvent,
ProximityEvent, SelectionEvent, VisibilityEvent.
New GTK classes: ItemFactory (not usable at the moment),
New Gnome classes: About, Dial, DockBand, GnomeDialog,
GnomePixmap, MDIGenericChild, MessageBox, PaperSelector, PropertyBox,
Modified other classes: App (new constructor), GnomeMain (new
init methods), MDI (renamed some methods), Box (renamed some methods,
use pointer wrapping), CList (many new methods, fixed listeners), CTree
(many new methods), Notebook (use pointer wrapping), Widget (fixed
ignored arguments, new method fireEvent), GdkWindow (use pointer
wrapping), Main (some new methods), Range (added missing listeners)
Added support for `const' wrapping - with `wrap-arg const' types like
`gchar*' will become `const gchar*'.
- Argh, due to a missing `+' in the testgtk Makefile.am file, no
.java source were included in the dist tarball. This has been fixed
- Some new classes were added to the TestGTK program.
- Updated implemented listeners in some test programs.
The test directory has been split into subdirectories for each package
(gdk, gtk and gnome). The test programs are only built when the
corresponding package is also built.
A very minor release.
New Gnome classes:
Modified other classes:
CList (new constructor)
CheckButton (now extends ToggleButton)
New test programs:
testgtk/CListWindow (not complete)
* Tarball now includes the macros directory and autogen.sh.
* Use -classpath when compiling autoconf test programs with gcj.
New Gnome classes:
App, Calculator, Dock, DockItem DockLayout, DockLayoutItem, FileEntry,
GnomeEntry, HRef, Less, MDI, MDIChild, PixmapMenuItem, UIInfo.
Modified other classes:
GtkObject (many new methods)
ScrolledWindow (spelling mistake in addWithViewport)
Widget (many new methods)
Main (new method init)
GdkMain (new method init)
New test programs
TestGTK - An implementation of the Gtk+ testgtk program in Java.
It is not complete but the fundation is there.
* The configure script now looks for libgcj in the same directory prefix
as the gcj and gcjh binaries.
* C++ source files in src are now compiled with GLIB_CFLAGS.
Thanks to Adrian Vance Custer for reporting this and suggesting the
* libtool is now used to build libraries. This means that static as well
as shared libraries can be built. It also means that the Gnome-GCJ
libraries, header and bytecode files for classes can be installed
correctly with `make install'.
* Improved checking for libgcj by requiring certain Java classes. Thanks
to Lee Mallabone reporting the build problems.
* Vpath builds (building in dirs other than the source directory) are
supported. `make distcheck' also works.
* Gnome-GCJ now uses autoconf and automake! As a result of this the
directory hierarchy has been slightly changed. The output directory
is currently the same as the source directory (will be fixed in the
* The configure script makes sure egcs/gcj, libgcj and gperf are
installed, and that they are of recent versions. There is no need for
editing Makefiles or passing special parameters to configure, as
everything is done automaticly. The optional program javadoc is also
* Each package now builds a separate library - libgcjgdk, libgcjgtk and
libgcjgnome. The configure script automaticly checks for these
libraries - glib, gdk, gtk, gnome - and builds each found.
* Added support for 'free' wrap type. This types makes it possible
to free strings returned from GTK functions before the Java string
* Added support for 'pointer' wrap type. This type makes it possible
to pass return values as pointers. This makes many manual code in
.defs files unnecessary. This is used in CList and others.
* ClassDefsParser no longer contains a 'basedir' for holding the
* Cleaned up .cc and .h files. They are now split into commontypes.cc,
and one for each library (gdk, gtk, gnome).
* The file objects.gperf-head is no longer needed. Its contents has been
merged into the ListClasses program.
* Updated some generated doc-comments.
Added first support for Gnome:
* Added Gnome.defs file (base for gnu.gnome.Gnome interface).
Added new classes/interfaces:
CTreeNode, CTreeCallback (GtkCTreeFunc), RadioButton, CheckMenuItem,
RadioMenuItem, Calendar, Clock (gnome).
Added new test programs:
Added/modified methods in these classes:
CTree, ColorSelection, AccelGroup, Combo, RcStyle, Widget, Tree, List,
* Code for private constructors and setNativeObject methods is
generated automaticly for non-GtkObjects.
* Cleaned up among support .cc files. As a result of this
cnistring.cc could be removed.
* Passing objects has been made simpler. Now there are at least
five classes of types: Objects (GtkObject, ..), Structures
(Color, Rectangle, ..), Boxed (Colormap, Font, ..), Complex
structures (WindowAttr, GCValues, String), and Arrays.
* The "private" GCJ header files are no longer needed, so the
LIBGCJ_PRIVATE_INCLUDES Makefile variable has been removed.
Added new classes:
Toolbar, GdkImage (GDK), Image, Pixmap, Preview, Geometry (GDK),
Added/modified methods in these classes:
GdkWindow, Visual, CList, CTree, Menu, Widget, Window.
Added new test porgram:
Renamed gnome-gcj to Gnome-GCJ.
Changes to documentation and homepage:
* Updated description in the README file. Added some links to the LINKS
* Updated the layout of the homepage. Added new Links section, which is a
copy of the LINKS document.
* The generation of JavaDoc has been improved. An overview.html file was
Major internal changes:
* Constructors for many classes were changed. A dummy "RawData" object is
passed instead of a "Class" object.
* The automatic creation of Java objects from GTK objects is no longer
done with reflection and Hashtables in gnu.gtk.Main. Instead gperf is
used to generate a perfect hash of class names. Code to instantiate
each class is generated. This means that you need gperf installed
in order to compile Gnome-GCJ.
* A program GCJWrapper was added. This has two effects. First, the
generation process is faster and uses less disk space (because fewer
executables are needed). Second, exceptions are caught and the
exit value is set to non-zero when this happens (to circumvent
missing features in GCJ).
* The user-data fields of GdkWindows and Regions are no longer used.
This is because Gtk already uses them (argh).
Added new GDK classes:
GdkPixmap, GdkBitmap, GC, GCValues.
Added new GTK classes:
Added/updated/removed methods to the following classes:
GdkWindow, Main, GdkMain, CList, Editable, Entry, HandleBox, Layout,
Notebook, Paned, Plug, Range, Socket, SpinButton, Text, ToggleButton,
Added new GDK classes:
Cursor, Visual, Colormap, Region, GdkWindow, GdkMain.
Added new test program:
Implemented new method in:
TipsQuery, CList, Entry, Widget.
Fixed doc-comments for Color.
Fixed doc-comments for constant classes (gnu.gdk.Gdk, gnu.gtk.Gtk).
Added dummy 'package-list' file so that standard Java classes look
like links ("String") instead of full names ("java.lang.String").
Changed the signal invocation system. Listener methods are now called from
Java, not from C++/CNI. Unfortunately this adds another layer, but is
necessary for now. Now the test program "Callbacks" works correctly
(the correct method is called).
Improvements to generation and gnome-gcj .defs format:
A new generator program TypeListGenerator generates a list of gnome-gcj
types (Java classes, scalar types, etc), along with their related info.
This makes many wrap-arg/wrap-return directives in .defs files
Modified java.util.HashMap to circumvent gcj bugs. (The HashMap is used
by the TypeListGenerator.)
Simplified many generator programs by putting common methods in the
Added new classes: Font (gdk), ColorSelection, ColorSelectionDialog.
Improved many classes by adding new Methods:
AccelLabel, Box, Entry, FileSelection, FontSelection, FontSelectionDialog,
Layout, List, MenuShell, Notebook, Range, Scale, Statusbar, Text,
Fixed bug in Main causing the static block to be executed before
nativeClasses was initialized. GCJ did not detect this.
Fixed bug in gtksupport.cc: The file gnu/gtk/MenuDetachCallback.h should
not be included.
New file cnistring.cc with string support functions.
Added Callback-cast wrapping support, used by Main.addQuit, addInit
Added new methods to Main, Menu, Widget, CList, Tooltips, AspectFrame,
CheckButton, Curve, HandleBox, and Paned.
Added new GDK classes: Color, Point, Rectangle, Segment, Dimension.
Added new classes: Allocation, Requisition.
Added test program for Tooltips: TooltipsDemo.
The test program CListDemo now adds colors to some rows.
New callback classes QuitCallback and InitCallback.
Various cleanups in the generator program source code.
Various improvements to generated files:
The gnome-gcj version number is now visible in the file head.
Generated source files are now indentated again.
Automatic indentation for /* and /** comments is supported.
Doc-comments for wrapped parameters are now added (with @param).
Callbacks (not Listeners) are handled differently. This is described
in the wrappers section of the INTERNALS document.
Added new class Combo.
Added new class GtkError.
Added new interface MenuPositionCallback.
Added new/improved methods in Curve (getVector), Window (constructor),
FontSelection, FontSelectionDialog, GammaCurve, InputDialog, Label,
Menu, ScrolledWindow, Container, Main, Range.
Main now handles errors which may occur when creating Java objects from
The file Main.java.in is now generated in gnu/gtk of the output directory.
Added a list of header files to the STATUS document.
Added support for new defines 'type-function', 'include-java', and
Added classes BasicMapEntry, Bucket, HashMap and HashSet (all in
java.util) from Classpath.
Changed constructors in generated classes. The new subclass-constructor
take a Class argument.
Added support for some new methods/fields/signals in Button, CheckButton,
Curve, Dialog, Editable, OptionMenu, Window and GtkObject.
Now automaticly creates a Java object is the returned Gtk object
of a method doesn't have one already. This made Dialog usable.
New test files DialogTest and CurveTest.
Fixed some bugs in cnisupport.cc.
A Java 2 runtime and a Java 2 compiler are no longer needed to compile
gnome-gcj. Modifications to various Classpath classes made GCJ usable.
Version 0.1.0. First public release.