This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Re: Lightweight peer implementation
On Fri, 2003-08-08 at 15:38, Scott Gilbertson Onsite wrote:
> I claim that lightweights are not platform-specific, which is why I
> submitted the following patch (which has not been comitted) a while back.
> http://gcc.gnu.org/ml/java-patches/2003-q2/msg00140.html
>
> I think you'll find it works fine with the gtk peers, even though I tested
> it with xlib peers. You really shouldn't need any gtk-specific methods in
> there, because in the lightweight case the Component and Container classes
> pass all requests up the line to their nearest heavyweight parent. It's
> enough, therefore, that the heavyweights implement the platform-specific
> (i.e. xlib vs. gtk, etc.) stuff.
>
Hi Scott,
Thanks for the feedback.
I've adopted your approach and implemented some of the ComponentPeer
methods. I tried to copy the behaviour of the corresponding Component
calls when peer == null. My rational is that maybe we can eventually
remove the peer != null checks in Component.java, and assume that a
component always has a non-null peer, whether it be lightweight or
heavyweight.
In the original thread, Tom mentioned that returning a gnu.java.awt
class from a java.awt class might not be a good idea. What about
implementing LightweightPeer as a private inner class of
Component.java? This approach would have the advantage that the peer
would have direct access to Component's fields.
Thoughts?
Tom
> ----- Original Message -----
> From: "Thomas Fitzsimmons" <fitzsim@redhat.com>
> To: "GCJ Patch List" <java-patches@gcc.gnu.org>
> Sent: Friday, August 08, 2003 2:49 PM
> Subject: Lightweight peer implementation
>
>
> > Hello,
> >
> > This patch is a first step toward support for lightweight components
> > that draw on GTK widgets. The patch prevents a crash in the
> > ComponentMouse test from Acunia's open-wonka-visualtest.
> >
> > Please review and comment.
> >
> > Thanks,
> > Tom
> >
> > 2003-08-08 Thomas Fitzsimmons <fitzsim@redhat.com>
> >
> > * Makefile.am (gtk_awt_peer_sources): Add
> > GtkLightweightPeer.java. Remove GLightweightPeer.java.
> > * gnu/java/awt/peer/gtk/GtkComponentPeer.java: Return before
> > attempting to create GTK widgets if this is a lightweight peer.
> > * gnu/java/awt/peer/gtk/GtkToolkit.java (createComponent): New
> > method.
> > * gnu/java/awt/peer/gtk/GtkLightweightPeer.java: New file.
> >
> >
>