+2003-08-21 Scott Gilbertson <scottg@mantatest.com>
+ Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * Makefile.am (gtk_awt_peer_sources): Add
+ gnu/java/awt/peer/GLightweightPeer.java. Remove
+ gnu/java/awt/GLightweightPeer.java.
+ * gnu/java/awt/GLightweightPeer.java: Remove file.
+ * gnu/java/awt/peer/GLightweightPeer.java: New file.
+ * java/awt/Component.java (getToolkit): Add comment about
+ lightweight components.
+ * java/awt/Toolkit.java (createComponent): Return
+ gnu.java.awt.peer.GLightweightPeer.
+
2003-08-21 Richard Earnshaw <rearnsha@arm.com>
* configure.in: Fix detection of gcj when building with newlib.
gnu/java/awt/EmbeddedWindow.java \
gnu/java/awt/EmbeddedWindowSupport.java \
gnu/java/awt/EventModifier.java \
-gnu/java/awt/GLightweightPeer.java \
gnu/java/awt/image/ImageDecoder.java \
gnu/java/awt/image/XBMDecoder.java \
gnu/java/awt/peer/EmbeddedWindowPeer.java \
+gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/beans/editors/ColorEditor.java \
gnu/java/beans/editors/FontEditor.java \
gnu/java/beans/editors/NativeBooleanEditor.java \
gnu/java/awt/EmbeddedWindow.java \
gnu/java/awt/EmbeddedWindowSupport.java \
gnu/java/awt/EventModifier.java \
-gnu/java/awt/GLightweightPeer.java \
gnu/java/awt/image/ImageDecoder.java \
gnu/java/awt/image/XBMDecoder.java \
gnu/java/awt/peer/EmbeddedWindowPeer.java \
+gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/beans/editors/ColorEditor.java \
gnu/java/beans/editors/FontEditor.java \
gnu/java/beans/editors/NativeBooleanEditor.java \
DATA = $(jar_DATA) $(pkgconfig_DATA) $(toolexecmainlib_DATA)
DIST_COMMON = README COPYING ChangeLog Makefile.am Makefile.in NEWS \
-THANKS acconfig.h acinclude.m4 aclocal.m4 configure configure.in \
-gcj/libgcj-config.h.in gcj/stamp-h2.in include/config.h.in \
-include/stamp-h1.in libgcj-test.spec.in libgcj.pc.in libgcj.spec.in
+THANKS acinclude.m4 aclocal.m4 configure configure.in \
+libgcj-test.spec.in libgcj.pc.in libgcj.spec.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/gnu/java/awt/EmbeddedWindow.P \
.deps/gnu/java/awt/EmbeddedWindowSupport.P \
.deps/gnu/java/awt/EventModifier.P \
-.deps/gnu/java/awt/GLightweightPeer.P \
.deps/gnu/java/awt/image/ImageDecoder.P \
.deps/gnu/java/awt/image/XBMDecoder.P \
.deps/gnu/java/awt/natEmbeddedWindow.P \
.deps/gnu/java/awt/peer/EmbeddedWindowPeer.P \
+.deps/gnu/java/awt/peer/GLightweightPeer.P \
.deps/gnu/java/awt/peer/gtk/GdkFontMetrics.P \
.deps/gnu/java/awt/peer/gtk/GdkGraphics.P \
.deps/gnu/java/awt/peer/gtk/GtkArg.P \
$(SHELL) ./config.status --recheck
$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
-
-include/config.h: include/stamp-h1
- @if test ! -f $@; then \
- rm -f include/stamp-h1; \
- $(MAKE) include/stamp-h1; \
- else :; fi
-include/stamp-h1: $(srcdir)/include/config.h.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES= CONFIG_HEADERS=include/config.h \
- $(SHELL) ./config.status
- @echo timestamp > include/stamp-h1 2> /dev/null
-$(srcdir)/include/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/include/stamp-h1.in
- @if test ! -f $@; then \
- rm -f $(srcdir)/include/stamp-h1.in; \
- $(MAKE) $(srcdir)/include/stamp-h1.in; \
- else :; fi
-$(srcdir)/include/stamp-h1.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
- cd $(top_srcdir) && $(AUTOHEADER)
- @echo timestamp > $(srcdir)/include/stamp-h1.in 2> /dev/null
-
-gcj/libgcj-config.h: gcj/stamp-h2
- @if test ! -f $@; then \
- rm -f gcj/stamp-h2; \
- $(MAKE) gcj/stamp-h2; \
- else :; fi
-gcj/stamp-h2: $(srcdir)/gcj/libgcj-config.h.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES= CONFIG_HEADERS=gcj/libgcj-config.h \
- $(SHELL) ./config.status
- @echo timestamp > gcj/stamp-h2 2> /dev/null
-$(srcdir)/gcj/libgcj-config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/gcj/stamp-h2.in
- @if test ! -f $@; then \
- rm -f $(srcdir)/gcj/stamp-h2.in; \
- $(MAKE) $(srcdir)/gcj/stamp-h2.in; \
- else :; fi
-$(srcdir)/gcj/stamp-h2.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
- cd $(top_srcdir) && $(AUTOHEADER)
- @echo timestamp > $(srcdir)/gcj/stamp-h2.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
- -rm -f include/config.h gcj/libgcj-config.h
-
-maintainer-clean-hdr:
libgcj.pc: $(top_builddir)/config.status libgcj.pc.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
libgcj.spec: $(top_builddir)/config.status libgcj.spec.in
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
-mostlyclean-am: mostlyclean-hdr mostlyclean-toolexeclibLTLIBRARIES \
- mostlyclean-compile mostlyclean-libtool \
- mostlyclean-binPROGRAMS mostlyclean-noinstPROGRAMS \
- mostlyclean-tags mostlyclean-depend mostlyclean-generic
+mostlyclean-am: mostlyclean-toolexeclibLTLIBRARIES mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-binPROGRAMS \
+ mostlyclean-noinstPROGRAMS mostlyclean-tags \
+ mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-recursive
-clean-am: clean-hdr clean-toolexeclibLTLIBRARIES clean-compile \
- clean-libtool clean-binPROGRAMS clean-noinstPROGRAMS \
- clean-tags clean-depend clean-generic mostlyclean-am \
- clean-local
+clean-am: clean-toolexeclibLTLIBRARIES clean-compile clean-libtool \
+ clean-binPROGRAMS clean-noinstPROGRAMS clean-tags \
+ clean-depend clean-generic mostlyclean-am clean-local
clean: clean-recursive
-distclean-am: distclean-hdr distclean-toolexeclibLTLIBRARIES \
- distclean-compile distclean-libtool \
- distclean-binPROGRAMS distclean-noinstPROGRAMS \
- distclean-tags distclean-depend distclean-generic \
- clean-am
+distclean-am: distclean-toolexeclibLTLIBRARIES distclean-compile \
+ distclean-libtool distclean-binPROGRAMS \
+ distclean-noinstPROGRAMS distclean-tags \
+ distclean-depend distclean-generic clean-am
-rm -f libtool
distclean: distclean-recursive
-rm -f config.status
-maintainer-clean-am: maintainer-clean-hdr \
- maintainer-clean-toolexeclibLTLIBRARIES \
+maintainer-clean-am: maintainer-clean-toolexeclibLTLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-binPROGRAMS \
maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
maintainer-clean: maintainer-clean-recursive
-rm -f config.status
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-mostlyclean-toolexeclibLTLIBRARIES distclean-toolexeclibLTLIBRARIES \
-clean-toolexeclibLTLIBRARIES maintainer-clean-toolexeclibLTLIBRARIES \
+.PHONY: mostlyclean-toolexeclibLTLIBRARIES \
+distclean-toolexeclibLTLIBRARIES clean-toolexeclibLTLIBRARIES \
+maintainer-clean-toolexeclibLTLIBRARIES \
uninstall-toolexeclibLTLIBRARIES install-toolexeclibLTLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
+THREADCXXFLAGS = @THREADCXXFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLDFLAGS = @THREADLDFLAGS@
+++ /dev/null
-/* Copyright (C) 2000, 2002 Free Software Foundation
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package gnu.java.awt;
-
-import java.awt.*;
-import java.awt.event.PaintEvent;
-import java.awt.peer.*;
-import java.awt.image.*;
-
-/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class GLightweightPeer implements LightweightPeer
-{
- public static final GLightweightPeer INSTANCE = new GLightweightPeer();
-
- public GLightweightPeer() {}
-
- // -------- java.awt.peer.ComponentPeer implementation:
-
- public int checkImage(Image img, int width, int height, ImageObserver o)
- {
- return 0;
- }
-
- public Image createImage(ImageProducer prod)
- {
- return null;
- }
-
- public Image createImage(int width, int height)
- {
- return null;
- }
-
- public void disable() {}
-
- public void dispose() {}
-
- public void enable() {}
-
- public GraphicsConfiguration getGraphicsConfiguration()
- {
- return null;
- }
-
- public FontMetrics getFontMetrics(Font f)
- {
- return null;
- }
-
- public Graphics getGraphics()
- {
- return null;
- }
-
- public Point getLocationOnScreen()
- {
- return null;
- }
-
- public Dimension getMinimumSize()
- {
- return null;
- }
-
- public Dimension getPreferredSize()
- {
- return null;
- }
-
- public Toolkit getToolkit()
- {
- return null;
- }
-
- public void handleEvent(AWTEvent e) {}
-
- public void hide() {}
-
- public boolean isFocusable()
- {
- return false;
- }
-
- public boolean isFocusTraversable()
- {
- return false;
- }
-
- public Dimension minimumSize()
- {
- return null;
- }
-
- public Dimension preferredSize()
- {
- return null;
- }
-
- public void paint(Graphics graphics) {}
-
- public boolean prepareImage(Image img, int width, int height,
- ImageObserver o)
- {
- return false;
- }
-
- public void print(Graphics graphics) {}
-
- public void repaint(long tm, int x, int y, int width, int height) {}
-
- public void requestFocus() {}
-
- public boolean requestFocus(java.awt.Component source, boolean bool1, boolean bool2, long x) { return false; }
-
- public void reshape(int x, int y, int width, int height) {}
-
- public void setBackground(Color color) {}
-
- public void setBounds(int x, int y, int width, int height) {}
-
- public void setCursor(Cursor cursor) {}
-
- public void setEnabled(boolean enabled) {}
-
- public void setEventMask(long eventMask) {}
-
- public void setFont(Font font) {}
-
- public void setForeground(Color color) {}
-
- public void setVisible(boolean visible) {}
-
- public void show() {}
-
- public ColorModel getColorModel ()
- {
- return null;
- }
-
- public boolean isObscured() { return false; }
-
- public boolean canDetermineObscurity() { return false; }
-
- public void coalescePaintEvent(PaintEvent e) { }
-
- public void updateCursorImmediately() { }
-
- public VolatileImage createVolatileImage(int width, int height)
- {
- return null;
- }
-
- public boolean handlesWheelScrolling() { return false; }
-
- public void createBuffers(int x, java.awt.BufferCapabilities capabilities)
- throws java.awt.AWTException { }
-
- public java.awt.Image getBackBuffer() { return null; }
-
- public void flip(java.awt.BufferCapabilities.FlipContents contents) { }
-
- public void destroyBuffers() { }
-}
--- /dev/null
+/* GLightweightPeer.java --
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.peer;
+
+import java.awt.AWTEvent;
+import java.awt.AWTException;
+import java.awt.BufferCapabilities;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.GraphicsConfiguration;
+import java.awt.Image;
+import java.awt.Insets;
+import java.awt.Point;
+import java.awt.Toolkit;
+import java.awt.event.PaintEvent;
+import java.awt.image.ColorModel;
+import java.awt.image.ImageObserver;
+import java.awt.image.ImageProducer;
+import java.awt.image.VolatileImage;
+import java.awt.peer.ContainerPeer;
+import java.awt.peer.LightweightPeer;
+
+/*
+ * Another possible implementation strategy for lightweight peers is
+ * to make GLightweightPeer a placeholder class that implements
+ * LightweightPeer. Then the Component and Container classes could
+ * identify a peer as lightweight and handle it specially. The
+ * current approach is probably more clear but less efficient.
+ */
+
+/**
+ * A stub class that implements the ComponentPeer and ContainerPeer
+ * interfaces using callbacks into the Component and Container
+ * classes. GLightweightPeer allows the Component and Container
+ * classes to treat lightweight and heavyweight peers in the same way.
+ *
+ * Lightweight components are painted directly onto their parent
+ * containers through an Image object provided by the toolkit.
+ */
+public class GLightweightPeer
+ implements LightweightPeer, ContainerPeer
+{
+ private Component comp;
+
+ private Insets containerInsets;
+
+ public GLightweightPeer(Component comp)
+ {
+ this.comp = comp;
+ }
+
+ // -------- java.awt.peer.ContainerPeer implementation:
+
+ public Insets insets()
+ {
+ return getInsets ();
+ }
+
+ public Insets getInsets()
+ {
+ if (containerInsets == null)
+ containerInsets = new Insets (0,0,0,0);
+ return containerInsets;
+ }
+
+ public void beginValidate()
+ {
+ }
+
+ public void endValidate()
+ {
+ }
+
+ public void beginLayout()
+ {
+ }
+
+ public void endLayout()
+ {
+ }
+
+ public boolean isPaintPending()
+ {
+ return false;
+ }
+
+ // -------- java.awt.peer.ComponentPeer implementation:
+
+ public int checkImage(Image img, int width, int height, ImageObserver o)
+ {
+ return comp.getToolkit().checkImage(img, width, height, o);
+ }
+
+ public Image createImage(ImageProducer prod)
+ {
+ return comp.getToolkit().createImage(prod);
+ }
+
+ /* This method is not called. */
+ public Image createImage(int width, int height)
+ {
+ return null;
+ }
+
+ public void disable() {}
+
+ public void dispose() {}
+
+ public void enable() {}
+
+ public GraphicsConfiguration getGraphicsConfiguration()
+ {
+ return null;
+ }
+
+ public FontMetrics getFontMetrics(Font f)
+ {
+ return comp.getToolkit().getFontMetrics(f);
+ }
+
+ /* Returning null here tells the Component object that called us to
+ * use its parent's Graphics. */
+ public Graphics getGraphics()
+ {
+ return null;
+ }
+
+ public Point getLocationOnScreen()
+ {
+ Point parentLocation = comp.getParent().getLocationOnScreen();
+ return new Point (parentLocation.x + comp.getX(),
+ parentLocation.y + comp.getY());
+ }
+
+ public Dimension getMinimumSize()
+ {
+ return new Dimension(comp.getWidth(), comp.getHeight());
+ }
+
+ /* A lightweight component's preferred size is equivalent to its
+ * Component width and height values. */
+ public Dimension getPreferredSize()
+ {
+ return new Dimension(comp.getWidth(), comp.getHeight());
+ }
+
+ /* Returning null here tells the Component object that called us to
+ * use its parent's Toolkit. */
+ public Toolkit getToolkit()
+ {
+ return null;
+ }
+
+ public void handleEvent(AWTEvent e) {}
+
+ public void hide() {}
+
+ public boolean isFocusable()
+ {
+ return false;
+ }
+
+ public boolean isFocusTraversable()
+ {
+ return false;
+ }
+
+ public Dimension minimumSize()
+ {
+ return getMinimumSize();
+ }
+
+ public Dimension preferredSize()
+ {
+ return getPreferredSize();
+ }
+
+ public void paint(Graphics graphics) {}
+
+ public boolean prepareImage(Image img, int width, int height,
+ ImageObserver o)
+ {
+ return comp.getToolkit().prepareImage(img, width, height, o);
+ }
+
+ public void print(Graphics graphics) {}
+
+ public void repaint(long tm, int x, int y, int width, int height) {}
+
+ public void requestFocus() {}
+
+ public boolean requestFocus(Component source, boolean bool1, boolean bool2, long x)
+ {
+ return false;
+ }
+
+ public void reshape(int x, int y, int width, int height) {}
+
+ public void setBackground(Color color) {}
+
+ public void setBounds(int x, int y, int width, int height) { }
+
+ public void setCursor(Cursor cursor) {}
+
+ public void setEnabled(boolean enabled) {}
+
+ public void setEventMask(long eventMask) {}
+
+ public void setFont(Font font) {}
+
+ public void setForeground(Color color) {}
+
+ public void setVisible(boolean visible) {}
+
+ public void show() {}
+
+ public ColorModel getColorModel ()
+ {
+ return comp.getColorModel ();
+ }
+
+ public boolean isObscured()
+ {
+ return false;
+ }
+
+ public boolean canDetermineObscurity()
+ {
+ return false;
+ }
+
+ public void coalescePaintEvent(PaintEvent e) { }
+
+ public void updateCursorImmediately() { }
+
+ public VolatileImage createVolatileImage(int width, int height)
+ {
+ return null;
+ }
+
+ public boolean handlesWheelScrolling()
+ {
+ return false;
+ }
+
+ public void createBuffers(int x, BufferCapabilities capabilities)
+ throws AWTException { }
+
+ public Image getBackBuffer()
+ {
+ return null;
+ }
+
+ public void flip(BufferCapabilities.FlipContents contents) { }
+
+ public void destroyBuffers() { }
+}
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
+THREADCXXFLAGS = @THREADCXXFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLDFLAGS = @THREADLDFLAGS@
if (tk != null)
return tk;
}
+ // Get toolkit for lightweight component.
if (parent != null)
return parent.getToolkit();
return Toolkit.getDefaultToolkit();
* with its own native window. Instead, this method allows the component
* to draw on its parent window as a "lightweight" widget.
*
- * XXX: FIXME
- *
* @param target The <code>Component</code> to create the peer for.
*
* @return The peer for the specified <code>Component</code> object.
*/
protected LightweightPeer createComponent(Component target)
{
- return null;
+ return new gnu.java.awt.peer.GLightweightPeer (target);
}
/**
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
+THREADCXXFLAGS = @THREADCXXFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLDFLAGS = @THREADLDFLAGS@