So, most things are working in the AWT -- even Swing is working, and
much better than it was when I posted the Hello World screen shots.

Features recently added: menus, popup menus, menushortcuts, usable
Graphics implementation (clips, translations, cloning, xor, drawing),
insets, proper expose events, and offscreen images (for double
buffering)

After a couple of bug fixes and one (important) design change, I'd
like to start having our AWT peers integrated into Aaron's Java side
of the AWT.  I also plan to cut an alpha release of the GTK+ AWT peers
and let people start banging on them.  There are bugs, but these will
be worked out in time.  Hopefully the alpha will be cut by this Sunday
evening (1999-10-24).

Issues that need to be addressed post alpha:

* Full image support
  - PNG/JPEG/GIF/* loaders (we could use help on this!)
  - Finish image support in GdkGraphics (resizing code)

* Deal with Java's non-ICCCM compliant specifications
  - This includes properly figuring out borders on toplevel windows.
    One alternative is to simply say that borders are always 0.
  - Java side of Sun's implementation of the AWT is terribly broken
    when it comes to resizing/placement of windows and violates ICCCM
    all over the place.

* Finish event code
  - Add remaining events.
  - Finish implementing event consumption for InputEvents.
  - Add configure event compression (GDK only compresses expose
    events)

* getPreferredSize
  - Most widgets do an "OK" job at returning a size, but the code is
    rather old, broken in many places, and should be rewritten.

* Implement ImageProducer for offscreen images.
  - Code from a libart patch needs to be ported. (trivial)

* Implement stupid methods in GdkGraphics (rounded rectangles)

* Speed issues
  - GTK+ widgets are blazingly fast, but Swing is a bit on the slow
    side.  This could be because of thread issues, events, or NSA.
  - All X11 windows must have *all* events turned on.  This is
    terribly broken, but it's impossible for a peer to find out from
    the Java side what events should be delivered (all events are just
    blindly placed into the system event queue). Yes, MouseMotion
    events are added to the queue WHENEVER you move the mouse,
    regardless of if the Java side wants to receive those events.  On
    the Java side of our AWT, this _must_ be fixed.

* Build System
  - Brian (cbj@gnu) needs to make the build system work for the GTK+
    AWT, without requiring the javah generated headers to be checked
    into CVS.

* Printing
  - For proper Java printing support, we need virtualized GDK graphic
    contexts, and it doesn't look like this will be happening for some
    time -- at least within the GTK+ community.

I'll call version 1.0 of the GTK+ peers done once all of these issues
have been resolved (minus printing).

Help is very much welcome.  If you'd like to help out, please get in
contact with me.  

As far as image loaders are concerned, this is a great place where
people that don't want to mess with the GTK+ AWT can help out, since
ImageProducers are completely independent of the AWT and can be
debugged using the Blackdown JDK.  I believe the JPEG implementation
will have to be done in C, and I'm somewhat leaning toward a C
implementation of PNG (yes, I realize that I keep on changing my mind
(and I still need to look at the Java PNG code at gjt)).  Image
formats such as GIF, PPM, and any other little esoteric format should
probably be written in Java.

And now, for your viewing pleasure, *drumroll*, a new screenshot:
<URL:http://people.redhat.com/pnfisher/metalworks.png>

-- 
Paul Fisher * [EMAIL PROTECTED]

Reply via email to