Big AWT patch.

From-SVN: r34976
This commit is contained in:
Bryce McKinlay 2000-07-12 03:32:07 +00:00 committed by Bryce McKinlay
parent 406a65d0db
commit c7a136d3ef
70 changed files with 4838 additions and 277 deletions

View File

@ -1,3 +1,82 @@
2000-07-12 Bryce McKinlay <bryce@albatross.co.nz>
AWT Stuff:
* java/util/ResourceBundle.java (getLocale): stub.
* Makefile.am: Added new AWT classes.
* Makefile.in: Rebuilt.
* java/awt/AWTEvent.java: Add EVENT_MASK constants, isConsumed,
constructors. Fix toString() and paramString().
* java/awt/AWTEventMulticaster.java: New class. Implemented.
* java/awt/CheckboxGroup.java: New class.
* java/awt/ColorModel.java: New class.
* java/awt/Component.java: Added stubs for most methods. Implemented
event dispatch.
* java/awt/Container.java: ditto.
* java/awt/ComponentOrientation.java: New class. Partly implemented.
* java/awt/Cursor.java: ditto.
* java/awt/Event.java: Fix paramString().
* java/awt/EventQueue.java: New class. Implemented.
* java/awt/Font.java: Added additional stub methods. Implemented
toString().
* java/awt/FontMetrics.java: New class. Stubbed.
* java/awt/GraphicsConfiguration.java: New class. Complete, except for
Java2D parts.
* java/awt/Insets.java: New class. Implemented.
* java/awt/Menu.java: Add new methods. Partially implemented.
* java/awt/MenuItem.java: Add new methods and fields. Partially
implemented.
* java/awt/MenuShortcut.java: New class. Implemented.
* java/awt/Panel.java: New class. Placeholder.
* java/awt/PopupMenu.java: New class. Stubbed.
* java/awt/Rectangle.java: New class. Implemented.
* java/awt/Toolkit.java: Added getSystemEventQueue() stub.
* java/awt/event/ActionEvent.java: Implement paramString().
* java/awt/event/AdjustmentEvent.java: Implement paramString().
* java/awt/event/ComponentEvent.java: Implement paramString().
* java/awt/event/ContainerEvent.java: Implement paramString().
* java/awt/event/FocusEvent.java: Implement paramString().
* java/awt/event/HierarchyBoundsAdapter.java: New class.
* java/awt/event/HierarchyBoundsListener.java: New class.
* java/awt/event/HierarchyEvent.java: New class.
* java/awt/event/HierarchyListener.java: New class.
* java/awt/event/InputMethodEvent.java: Implement paramString().
* java/awt/event/InvocationEvent.java: Implement paramString(). Throw
exception if !catchExceptions.
* java/awt/event/ItemEvent.java: Implement paramString().
* java/awt/event/KeyEvent.java: Implement paramString().
* java/awt/event/MouseEvent.java: Implement paramString().
* java/awt/event/PaintEvent.java: Implement paramString().
* java/awt/event/TextEvent.java: Implement paramString().
* java/awt/event/WindowEvent.java: Implement paramString().
AWT Peer interfaces:
* java/awt/peer/ButtonPeer.java: New file.
* java/awt/peer/ListPeer.java: New file.
* java/awt/peer/CanvasPeer.java: New file.
* java/awt/peer/MenuBarPeer.java: New file.
* java/awt/peer/CheckboxMenuItemPeer.java: New file.
* java/awt/peer/MenuComponentPeer.java: New file.
* java/awt/peer/CheckboxPeer.java: New file.
* java/awt/peer/MenuItemPeer.java: New file.
* java/awt/peer/ChoicePeer.java: New file.
* java/awt/peer/MenuPeer.java: New file.
* java/awt/peer/ComponentPeer.java: Implemented.
* java/awt/peer/PanelPeer.java: New file.
* java/awt/peer/ContainerPeer.java: Implemented.
* java/awt/peer/PopupMenuPeer.java: New file.
* java/awt/peer/DialogPeer.java: New file.
* java/awt/peer/ScrollPanePeer.java: New file.
* java/awt/peer/FileDialogPeer.java: New file.
* java/awt/peer/ScrollbarPeer.java: New file.
* java/awt/peer/FontPeer.java: New file.
* java/awt/peer/TextAreaPeer.java: New file.
* java/awt/peer/FramePeer.java: Implemented.
* java/awt/peer/TextComponentPeer.java: New file.
* java/awt/peer/LabelPeer.java: New file.
* java/awt/peer/TextFieldPeer.java: New file.
* java/awt/peer/LightweightPeer.java: New file.
* java/awt/peer/WindowPeer.java: Implemented.
2000-07-06 Tom Tromey <tromey@cygnus.com>
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass):
@ -32,7 +111,7 @@
2000-06-28 Bryce McKinlay <bryce@albatross.co.nz>
* ThreadGroup.java: Added synchronized flag to many methods.
* java/lang/ThreadGroup.java: Added synchronized flag to many methods.
(destroyed_flag): Removed.
(isDestroyed, removeGroup, removeThread): Test for parent == null.
(activeCount): Added spec note.

View File

@ -489,8 +489,12 @@ awt_java_source_files = \
java/awt/event/ActionEvent.java \
java/awt/event/ActionListener.java \
java/awt/event/ComponentEvent.java \
java/awt/event/KeyAdapter.java \
java/awt/event/HierarchyBoundsAdapter.java \
java/awt/event/HierarchyBoundsListener.java \
java/awt/event/HierarchyEvent.java \
java/awt/event/HierarchyListener.java \
java/awt/event/InputEvent.java \
java/awt/event/KeyAdapter.java \
java/awt/event/KeyEvent.java \
java/awt/event/KeyListener.java \
java/awt/event/TextEvent.java \
@ -520,14 +524,25 @@ java/awt/event/ItemEvent.java \
java/awt/event/InvocationEvent.java \
java/awt/event/PaintEvent.java \
java/awt/event/ContainerEvent.java \
java/awt/AWTError.java \
java/awt/AWTEvent.java \
java/awt/AWTEventMulticaster.java \
java/awt/BorderLayout.java \
java/awt/CheckboxGroup.java \
java/awt/ColorModel.java \
java/awt/Component.java \
java/awt/ComponentOrientation.java \
java/awt/Container.java \
java/awt/Cursor.java \
java/awt/Dimension.java \
java/awt/Event.java \
java/awt/EventDispatchThread.java \
java/awt/EventQueue.java \
java/awt/Font.java \
java/awt/FontMetrics.java \
java/awt/Frame.java \
java/awt/GraphicsConfiguration.java \
java/awt/Insets.java \
java/awt/LayoutManager.java \
java/awt/LayoutManager2.java \
java/awt/Menu.java \
@ -535,18 +550,45 @@ java/awt/MenuBar.java \
java/awt/MenuComponent.java \
java/awt/MenuContainer.java \
java/awt/MenuItem.java \
java/awt/MenuShortcut.java \
java/awt/Panel.java \
java/awt/Point.java \
java/awt/AWTError.java \
java/awt/PopupMenu.java \
java/awt/Shape.java \
java/awt/TextArea.java \
java/awt/TextComponent.java \
java/awt/Toolkit.java \
java/awt/Window.java \
java/awt/image/ImageConsumer.java \
java/awt/image/ImageObserver.java \
java/awt/image/ImageProducer.java \
java/awt/geom/Dimension2D.java \
java/awt/geom/Point2D.java \
java/awt/peer/ButtonPeer.java \
java/awt/peer/CanvasPeer.java \
java/awt/peer/CheckboxMenuItemPeer.java \
java/awt/peer/CheckboxPeer.java \
java/awt/peer/ChoicePeer.java \
java/awt/peer/ComponentPeer.java \
java/awt/peer/ContainerPeer.java \
java/awt/peer/DialogPeer.java \
java/awt/peer/FileDialogPeer.java \
java/awt/peer/FontPeer.java \
java/awt/peer/FramePeer.java \
java/awt/peer/LabelPeer.java \
java/awt/peer/LightweightPeer.java \
java/awt/peer/ListPeer.java \
java/awt/peer/MenuBarPeer.java \
java/awt/peer/MenuComponentPeer.java \
java/awt/peer/MenuItemPeer.java \
java/awt/peer/MenuPeer.java \
java/awt/peer/PanelPeer.java \
java/awt/peer/PopupMenuPeer.java \
java/awt/peer/ScrollPanePeer.java \
java/awt/peer/ScrollbarPeer.java \
java/awt/peer/TextAreaPeer.java \
java/awt/peer/TextComponentPeer.java \
java/awt/peer/TextFieldPeer.java \
java/awt/peer/WindowPeer.java \
java/awt/Adjustable.java \
java/awt/Color.java \

View File

@ -265,8 +265,12 @@ awt_java_source_files = \
java/awt/event/ActionEvent.java \
java/awt/event/ActionListener.java \
java/awt/event/ComponentEvent.java \
java/awt/event/KeyAdapter.java \
java/awt/event/HierarchyBoundsAdapter.java \
java/awt/event/HierarchyBoundsListener.java \
java/awt/event/HierarchyEvent.java \
java/awt/event/HierarchyListener.java \
java/awt/event/InputEvent.java \
java/awt/event/KeyAdapter.java \
java/awt/event/KeyEvent.java \
java/awt/event/KeyListener.java \
java/awt/event/TextEvent.java \
@ -296,14 +300,25 @@ java/awt/event/ItemEvent.java \
java/awt/event/InvocationEvent.java \
java/awt/event/PaintEvent.java \
java/awt/event/ContainerEvent.java \
java/awt/AWTError.java \
java/awt/AWTEvent.java \
java/awt/AWTEventMulticaster.java \
java/awt/BorderLayout.java \
java/awt/CheckboxGroup.java \
java/awt/ColorModel.java \
java/awt/Component.java \
java/awt/ComponentOrientation.java \
java/awt/Container.java \
java/awt/Cursor.java \
java/awt/Dimension.java \
java/awt/Event.java \
java/awt/EventDispatchThread.java \
java/awt/EventQueue.java \
java/awt/Font.java \
java/awt/FontMetrics.java \
java/awt/Frame.java \
java/awt/GraphicsConfiguration.java \
java/awt/Insets.java \
java/awt/LayoutManager.java \
java/awt/LayoutManager2.java \
java/awt/Menu.java \
@ -311,18 +326,45 @@ java/awt/MenuBar.java \
java/awt/MenuComponent.java \
java/awt/MenuContainer.java \
java/awt/MenuItem.java \
java/awt/MenuShortcut.java \
java/awt/Panel.java \
java/awt/Point.java \
java/awt/AWTError.java \
java/awt/PopupMenu.java \
java/awt/Shape.java \
java/awt/TextArea.java \
java/awt/TextComponent.java \
java/awt/Toolkit.java \
java/awt/Window.java \
java/awt/image/ImageConsumer.java \
java/awt/image/ImageObserver.java \
java/awt/image/ImageProducer.java \
java/awt/geom/Dimension2D.java \
java/awt/geom/Point2D.java \
java/awt/peer/ButtonPeer.java \
java/awt/peer/CanvasPeer.java \
java/awt/peer/CheckboxMenuItemPeer.java \
java/awt/peer/CheckboxPeer.java \
java/awt/peer/ChoicePeer.java \
java/awt/peer/ComponentPeer.java \
java/awt/peer/ContainerPeer.java \
java/awt/peer/DialogPeer.java \
java/awt/peer/FileDialogPeer.java \
java/awt/peer/FontPeer.java \
java/awt/peer/FramePeer.java \
java/awt/peer/LabelPeer.java \
java/awt/peer/LightweightPeer.java \
java/awt/peer/ListPeer.java \
java/awt/peer/MenuBarPeer.java \
java/awt/peer/MenuComponentPeer.java \
java/awt/peer/MenuItemPeer.java \
java/awt/peer/MenuPeer.java \
java/awt/peer/PanelPeer.java \
java/awt/peer/PopupMenuPeer.java \
java/awt/peer/ScrollPanePeer.java \
java/awt/peer/ScrollbarPeer.java \
java/awt/peer/TextAreaPeer.java \
java/awt/peer/TextComponentPeer.java \
java/awt/peer/TextFieldPeer.java \
java/awt/peer/WindowPeer.java \
java/awt/Adjustable.java \
java/awt/Color.java \
@ -904,14 +946,13 @@ LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(data_DATA) $(toolexeclib_DATA)
DIST_COMMON = README COPYING ChangeLog Makefile.am Makefile.in NEWS \
THANKS acconfig.h acinclude.m4 aclocal.m4 configure configure.in \
include/config.h.in include/stamp-h.in libgcj-test.spec.in \
libgcj.spec.in
THANKS acinclude.m4 aclocal.m4 configure configure.in \
libgcj-test.spec.in libgcj.spec.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
TAR = tar
GZIP_ENV = --best
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
@ -971,19 +1012,26 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/gnu/java/security/provider/SHA.P \
.deps/gnu/java/security/provider/SHA1PRNG.P .deps/interpret.P \
.deps/java/awt/AWTError.P .deps/java/awt/AWTEvent.P \
.deps/java/awt/AWTException.P .deps/java/awt/ActiveEvent.P \
.deps/java/awt/Adjustable.P .deps/java/awt/BorderLayout.P \
.deps/java/awt/Color.P .deps/java/awt/Component.P \
.deps/java/awt/Container.P .deps/java/awt/Dimension.P \
.deps/java/awt/Event.P .deps/java/awt/Font.P .deps/java/awt/Frame.P \
.deps/java/awt/Graphics.P \
.deps/java/awt/AWTEventMulticaster.P .deps/java/awt/AWTException.P \
.deps/java/awt/ActiveEvent.P .deps/java/awt/Adjustable.P \
.deps/java/awt/BorderLayout.P .deps/java/awt/CheckboxGroup.P \
.deps/java/awt/Color.P .deps/java/awt/ColorModel.P \
.deps/java/awt/Component.P .deps/java/awt/ComponentOrientation.P \
.deps/java/awt/Container.P .deps/java/awt/Cursor.P \
.deps/java/awt/Dimension.P .deps/java/awt/Event.P \
.deps/java/awt/EventDispatchThread.P .deps/java/awt/EventQueue.P \
.deps/java/awt/Font.P .deps/java/awt/FontMetrics.P \
.deps/java/awt/Frame.P .deps/java/awt/Graphics.P \
.deps/java/awt/GraphicsConfiguration.P \
.deps/java/awt/IllegalComponentStateException.P .deps/java/awt/Image.P \
.deps/java/awt/ItemSelectable.P .deps/java/awt/LayoutManager.P \
.deps/java/awt/LayoutManager2.P .deps/java/awt/Menu.P \
.deps/java/awt/MenuBar.P .deps/java/awt/MenuComponent.P \
.deps/java/awt/MenuContainer.P .deps/java/awt/MenuItem.P \
.deps/java/awt/Insets.P .deps/java/awt/ItemSelectable.P \
.deps/java/awt/LayoutManager.P .deps/java/awt/LayoutManager2.P \
.deps/java/awt/Menu.P .deps/java/awt/MenuBar.P \
.deps/java/awt/MenuComponent.P .deps/java/awt/MenuContainer.P \
.deps/java/awt/MenuItem.P .deps/java/awt/MenuShortcut.P \
.deps/java/awt/Paint.P .deps/java/awt/PaintContext.P \
.deps/java/awt/Point.P .deps/java/awt/Rectangle.P \
.deps/java/awt/Panel.P .deps/java/awt/Point.P \
.deps/java/awt/PopupMenu.P .deps/java/awt/Rectangle.P \
.deps/java/awt/Shape.P .deps/java/awt/TextArea.P \
.deps/java/awt/TextComponent.P .deps/java/awt/Toolkit.P \
.deps/java/awt/Transparency.P .deps/java/awt/Window.P \
@ -999,7 +1047,12 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/awt/event/ContainerEvent.P \
.deps/java/awt/event/ContainerListener.P \
.deps/java/awt/event/FocusAdapter.P .deps/java/awt/event/FocusEvent.P \
.deps/java/awt/event/FocusListener.P .deps/java/awt/event/InputEvent.P \
.deps/java/awt/event/FocusListener.P \
.deps/java/awt/event/HierarchyBoundsAdapter.P \
.deps/java/awt/event/HierarchyBoundsListener.P \
.deps/java/awt/event/HierarchyEvent.P \
.deps/java/awt/event/HierarchyListener.P \
.deps/java/awt/event/InputEvent.P \
.deps/java/awt/event/InputMethodEvent.P \
.deps/java/awt/event/InputMethodListener.P \
.deps/java/awt/event/InvocationEvent.P .deps/java/awt/event/ItemEvent.P \
@ -1013,12 +1066,27 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/awt/event/TextListener.P \
.deps/java/awt/event/WindowAdapter.P .deps/java/awt/event/WindowEvent.P \
.deps/java/awt/event/WindowListener.P .deps/java/awt/geom/Dimension2D.P \
.deps/java/awt/geom/Point2D.P .deps/java/awt/peer/ComponentPeer.P \
.deps/java/awt/peer/ContainerPeer.P .deps/java/awt/peer/FramePeer.P \
.deps/java/awt/peer/WindowPeer.P .deps/java/beans/BeanDescriptor.P \
.deps/java/beans/BeanInfo.P .deps/java/beans/Beans.P \
.deps/java/beans/Customizer.P .deps/java/beans/DesignMode.P \
.deps/java/beans/EventSetDescriptor.P \
.deps/java/awt/geom/Point2D.P .deps/java/awt/image/ImageConsumer.P \
.deps/java/awt/image/ImageObserver.P \
.deps/java/awt/image/ImageProducer.P .deps/java/awt/peer/ButtonPeer.P \
.deps/java/awt/peer/CanvasPeer.P \
.deps/java/awt/peer/CheckboxMenuItemPeer.P \
.deps/java/awt/peer/CheckboxPeer.P .deps/java/awt/peer/ChoicePeer.P \
.deps/java/awt/peer/ComponentPeer.P .deps/java/awt/peer/ContainerPeer.P \
.deps/java/awt/peer/DialogPeer.P .deps/java/awt/peer/FileDialogPeer.P \
.deps/java/awt/peer/FontPeer.P .deps/java/awt/peer/FramePeer.P \
.deps/java/awt/peer/LabelPeer.P .deps/java/awt/peer/LightweightPeer.P \
.deps/java/awt/peer/ListPeer.P .deps/java/awt/peer/MenuBarPeer.P \
.deps/java/awt/peer/MenuComponentPeer.P \
.deps/java/awt/peer/MenuItemPeer.P .deps/java/awt/peer/MenuPeer.P \
.deps/java/awt/peer/PanelPeer.P .deps/java/awt/peer/PopupMenuPeer.P \
.deps/java/awt/peer/ScrollPanePeer.P \
.deps/java/awt/peer/ScrollbarPeer.P .deps/java/awt/peer/TextAreaPeer.P \
.deps/java/awt/peer/TextComponentPeer.P \
.deps/java/awt/peer/TextFieldPeer.P .deps/java/awt/peer/WindowPeer.P \
.deps/java/beans/BeanDescriptor.P .deps/java/beans/BeanInfo.P \
.deps/java/beans/Beans.P .deps/java/beans/Customizer.P \
.deps/java/beans/DesignMode.P .deps/java/beans/EventSetDescriptor.P \
.deps/java/beans/FeatureDescriptor.P \
.deps/java/beans/IndexedPropertyDescriptor.P \
.deps/java/beans/IntrospectionException.P \
@ -1296,34 +1364,6 @@ config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
include/config.h: include/stamp-h
@if test ! -f $@; then \
rm -f include/stamp-h; \
$(MAKE) include/stamp-h; \
else :; fi
include/stamp-h: $(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-h 2> /dev/null
$(srcdir)/include/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/include/stamp-h.in
@if test ! -f $@; then \
rm -f $(srcdir)/include/stamp-h.in; \
$(MAKE) $(srcdir)/include/stamp-h.in; \
else :; fi
$(srcdir)/include/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/include/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f include/config.h
maintainer-clean-hdr:
libgcj.spec: $(top_builddir)/config.status libgcj.spec.in
cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
libgcj-test.spec: $(top_builddir)/config.status libgcj-test.spec.in
@ -1786,33 +1826,31 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-toolexeclibLIBRARIES \
mostlyclean-compile mostlyclean-libtool \
mostlyclean-toolexeclibLTLIBRARIES \
mostlyclean-am: mostlyclean-toolexeclibLIBRARIES mostlyclean-compile \
mostlyclean-libtool mostlyclean-toolexeclibLTLIBRARIES \
mostlyclean-binPROGRAMS mostlyclean-noinstPROGRAMS \
mostlyclean-tags mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-toolexeclibLIBRARIES clean-compile \
clean-libtool clean-toolexeclibLTLIBRARIES \
clean-binPROGRAMS clean-noinstPROGRAMS clean-tags \
clean-depend clean-generic mostlyclean-am clean-local
clean-am: clean-toolexeclibLIBRARIES clean-compile clean-libtool \
clean-toolexeclibLTLIBRARIES clean-binPROGRAMS \
clean-noinstPROGRAMS clean-tags clean-depend \
clean-generic mostlyclean-am clean-local
clean: clean-recursive
distclean-am: distclean-hdr distclean-toolexeclibLIBRARIES \
distclean-compile distclean-libtool \
distclean-toolexeclibLTLIBRARIES distclean-binPROGRAMS \
distclean-noinstPROGRAMS distclean-tags \
distclean-depend distclean-generic clean-am
distclean-am: distclean-toolexeclibLIBRARIES distclean-compile \
distclean-libtool distclean-toolexeclibLTLIBRARIES \
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-toolexeclibLIBRARIES \
maintainer-clean-am: maintainer-clean-toolexeclibLIBRARIES \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-toolexeclibLTLIBRARIES \
maintainer-clean-binPROGRAMS \
@ -1825,8 +1863,7 @@ maintainer-clean-am: maintainer-clean-hdr \
maintainer-clean: maintainer-clean-recursive
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
mostlyclean-toolexeclibLIBRARIES distclean-toolexeclibLIBRARIES \
.PHONY: mostlyclean-toolexeclibLIBRARIES distclean-toolexeclibLIBRARIES \
clean-toolexeclibLIBRARIES maintainer-clean-toolexeclibLIBRARIES \
uninstall-toolexeclibLIBRARIES install-toolexeclibLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \

View File

@ -1,20 +1,65 @@
/* Copyright (C) 1999, 2000 Free Software Foundation
This file is part of libjava.
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
/* Written using on-line Java 2 Platform Standard Edition v1.3 API
* Specification, as well as "The Java Class Libraries", 2nd edition
* (Addison-Wesley, 1998).
* Status: Believed complete and correct, except for the java.awt.Event
* compatibility constructor.
*/
/**
* AWTEvent is the root event class for all AWT events in the JDK 1.1 event
* model. It supercedes the Event class from JDK 1.0.
*/
public abstract class AWTEvent extends java.util.EventObject
{
protected boolean consumed;
protected int id;
/* Event selection masks */
public static final long COMPONENT_EVENT_MASK = 1 << 0,
CONTAINER_EVENT_MASK = 1 << 1,
FOCUS_EVENT_MASK = 1 << 2,
KEY_EVENT_MASK = 1 << 3,
MOUSE_EVENT_MASK = 1 << 4,
MOUSE_MOTION_EVENT_MASK = 1 << 5,
WINDOW_EVENT_MASK = 1 << 6,
ACTION_EVENT_MASK = 1 << 7,
ADJUSTMENT_EVENT_MASK = 1 << 8,
ITEM_EVENT_MASK = 1 << 9,
TEXT_EVENT_MASK = 1 << 10,
INPUT_METHOD_EVENT_MASK = 1 << 11;
/* Additional event selection masks from JDK 1.3 javadocs */
public static final long PAINT_EVENT_MASK = 1 << 13,
INVOCATION_EVENT_MASK = 1 << 14,
HIERARCHY_EVENT_MASK = 1 << 15,
HIERARCHY_BOUNDS_EVENT_MASK = 1 << 16;
public static final int RESERVED_ID_MAX = 0x7cf;
public AWTEvent(Event event)
{
// FIXME??
super(event.target);
this.id = event.id;
}
public AWTEvent(Object source, int id)
{
super(source);
this.id = id;
}
public int getID()
{
return id;
@ -22,17 +67,21 @@ public abstract class AWTEvent extends java.util.EventObject
public String paramString ()
{
return toString ();
return "";
}
public String toString ()
{
return getClass().getName() + "[" + id + "]";
return getClass().getName() + "[" + paramString() + "] on " + source;
}
public AWTEvent (Object source, int id)
protected void consume()
{
super(source);
this.id = id;
consumed = true;
}
protected boolean isConsumed()
{
return consumed;
}
}

View File

@ -0,0 +1,463 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
import java.awt.event.*;
import java.util.EventListener;
import java.io.ObjectOutputStream;
/* Written using on-line Java 2 Platform Standard Edition v1.3 API
* Specification, as well as "The Java Class Libraries", 2nd edition
* (Addison-Wesley, 1998).
* Status: Believed complete and correct to J2SE 1.3, except for
* serialization support methods, save() and saveInternal(), which are
* stubbed.
*/
/**
* Convienience class for thread-safe multicasting of AWT events,
* without synchronization.
*
* @author Bryce McKinlay
*/
public class AWTEventMulticaster implements ComponentListener,
ContainerListener, FocusListener, KeyListener, MouseListener,
MouseMotionListener, WindowListener, ActionListener, ItemListener,
AdjustmentListener, TextListener, InputMethodListener, HierarchyListener,
HierarchyBoundsListener
{
protected final EventListener a, b;
protected AWTEventMulticaster(EventListener a,
EventListener b)
{
this.a = a;
this.b = b;
}
protected static EventListener addInternal(EventListener a, EventListener b)
{
if (a == null)
return b;
else if (b == null)
return a;
else return new AWTEventMulticaster(a, b);
}
protected static EventListener removeInternal(EventListener l,
EventListener oldl)
{
if (l == oldl)
return null;
else if (l instanceof AWTEventMulticaster)
{
AWTEventMulticaster mc = (AWTEventMulticaster) l;
return mc.remove(oldl);
}
return l;
}
/* Remove oldl from this multicaster. */
protected EventListener remove(EventListener oldl)
{
// If oldl is an immediate child, return the other child.
if (a == oldl)
return b;
if (b == oldl)
return a;
// If a and/or b are Multicaster's, search them recursivly.
if (a instanceof AWTEventMulticaster)
{
AWTEventMulticaster mc = (AWTEventMulticaster) a;
EventListener newa = mc.remove(oldl);
if (newa != a)
return new AWTEventMulticaster (newa, b);
}
if (b instanceof AWTEventMulticaster)
{
AWTEventMulticaster mc = (AWTEventMulticaster) a;
EventListener newb = mc.remove(oldl);
if (newb != b)
return new AWTEventMulticaster (a, newb);
}
// oldl was not found.
return this;
}
public static ActionListener add(ActionListener a, ActionListener b)
{
return (ActionListener) addInternal(a, b);
}
public static AdjustmentListener add(AdjustmentListener a,
AdjustmentListener b)
{
return (AdjustmentListener) addInternal(a, b);
}
public static ComponentListener add(ComponentListener a, ComponentListener b)
{
return (ComponentListener) addInternal(a, b);
}
public static ContainerListener add(ContainerListener a, ContainerListener b)
{
return (ContainerListener) addInternal(a, b);
}
public static FocusListener add(FocusListener a, FocusListener b)
{
return (FocusListener) addInternal(a, b);
}
public static HierarchyBoundsListener add(HierarchyBoundsListener a,
HierarchyBoundsListener b)
{
return (HierarchyBoundsListener) addInternal(a, b);
}
public static HierarchyListener add(HierarchyListener a, HierarchyListener b)
{
return (HierarchyListener) addInternal(a, b);
}
public static InputMethodListener add(InputMethodListener a,
InputMethodListener b)
{
return (InputMethodListener) addInternal(a, b);
}
public static ItemListener add(ItemListener a, ItemListener b)
{
return (ItemListener) addInternal(a, b);
}
public static KeyListener add(KeyListener a, KeyListener b)
{
return (KeyListener) addInternal(a, b);
}
public static MouseListener add(MouseListener a, MouseListener b)
{
return (MouseListener) addInternal(a, b);
}
public static MouseMotionListener add(MouseMotionListener a,
MouseMotionListener b)
{
return (MouseMotionListener) addInternal(a, b);
}
public static TextListener add(TextListener a, TextListener b)
{
return (TextListener) addInternal(a, b);
}
public static WindowListener add(WindowListener a, WindowListener b)
{
return (WindowListener) addInternal(a, b);
}
public static ActionListener remove(ActionListener l, ActionListener oldl)
{
return (ActionListener) removeInternal(l, oldl);
}
public static AdjustmentListener remove(AdjustmentListener l,
AdjustmentListener oldl)
{
return (AdjustmentListener) removeInternal(l, oldl);
}
public static ComponentListener remove(ComponentListener l,
ComponentListener oldl)
{
return (ComponentListener) removeInternal(l, oldl);
}
public static ContainerListener remove(ContainerListener l,
ContainerListener oldl)
{
return (ContainerListener) removeInternal(l, oldl);
}
public static FocusListener remove(FocusListener l, FocusListener oldl)
{
return (FocusListener) removeInternal(l, oldl);
}
public static HierarchyBoundsListener remove(HierarchyBoundsListener l,
HierarchyBoundsListener oldl)
{
return (HierarchyBoundsListener) removeInternal(l, oldl);
}
public static HierarchyListener remove(HierarchyListener l,
HierarchyListener oldl)
{
return (HierarchyListener) removeInternal(l, oldl);
}
public static InputMethodListener remove(InputMethodListener l,
InputMethodListener oldl)
{
return (InputMethodListener) removeInternal(l, oldl);
}
public static ItemListener remove(ItemListener l, ItemListener oldl)
{
return (ItemListener) removeInternal(l, oldl);
}
public static KeyListener remove(KeyListener l, KeyListener oldl)
{
return (KeyListener) removeInternal(l, oldl);
}
public static MouseListener remove(MouseListener l, MouseListener oldl)
{
return (MouseListener) removeInternal(l, oldl);
}
public static MouseMotionListener remove(MouseMotionListener l,
MouseMotionListener oldl)
{
return (MouseMotionListener) removeInternal(l, oldl);
}
public static TextListener remove(TextListener l, TextListener oldl)
{
return (TextListener) removeInternal(l, oldl);
}
public static WindowListener remove(WindowListener l, WindowListener oldl)
{
return (WindowListener) removeInternal(l, oldl);
}
public void actionPerformed(ActionEvent e)
{
((ActionListener) a).actionPerformed(e);
((ActionListener) b).actionPerformed(e);
}
public void adjustmentValueChanged(AdjustmentEvent e)
{
((AdjustmentListener) a).adjustmentValueChanged(e);
((AdjustmentListener) b).adjustmentValueChanged(e);
}
public void componentHidden(ComponentEvent e)
{
((ComponentListener) a).componentHidden(e);
((ComponentListener) b).componentHidden(e);
}
public void componentMoved(ComponentEvent e)
{
((ComponentListener) a).componentMoved(e);
((ComponentListener) b).componentMoved(e);
}
public void componentResized(ComponentEvent e)
{
((ComponentListener) a).componentResized(e);
((ComponentListener) b).componentResized(e);
}
public void componentShown(ComponentEvent e)
{
((ComponentListener) a).componentShown(e);
((ComponentListener) b).componentShown(e);
}
public void componentAdded(ContainerEvent e)
{
((ContainerListener) a).componentAdded(e);
((ContainerListener) b).componentAdded(e);
}
public void componentRemoved(ContainerEvent e)
{
((ContainerListener) a).componentRemoved(e);
((ContainerListener) b).componentRemoved(e);
}
public void focusGained(FocusEvent e)
{
((FocusListener) a).focusGained(e);
((FocusListener) b).focusGained(e);
}
public void focusLost(FocusEvent e)
{
((FocusListener) a).focusLost(e);
((FocusListener) b).focusLost(e);
}
public void ancestorMoved(HierarchyEvent e)
{
((HierarchyBoundsListener) a).ancestorMoved(e);
((HierarchyBoundsListener) b).ancestorMoved(e);
}
public void ancestorResized(HierarchyEvent e)
{
((HierarchyBoundsListener) a).ancestorResized(e);
((HierarchyBoundsListener) b).ancestorResized(e);
}
public void hierarchyChanged(HierarchyEvent e)
{
((HierarchyListener) a).hierarchyChanged(e);
((HierarchyListener) b).hierarchyChanged(e);
}
public void caretPositionChanged(InputMethodEvent e)
{
((InputMethodListener) a).caretPositionChanged(e);
((InputMethodListener) b).caretPositionChanged(e);
}
public void inputMethodTextChanged(InputMethodEvent e)
{
((InputMethodListener) a).inputMethodTextChanged(e);
((InputMethodListener) b).inputMethodTextChanged(e);
}
public void itemStateChanged(ItemEvent e)
{
((ItemListener) a).itemStateChanged(e);
((ItemListener) b).itemStateChanged(e);
}
public void keyPressed(KeyEvent e)
{
((KeyListener) a).keyPressed(e);
((KeyListener) b).keyPressed(e);
}
public void keyReleased(KeyEvent e)
{
((KeyListener) a).keyReleased(e);
((KeyListener) b).keyReleased(e);
}
public void keyTyped(KeyEvent e)
{
((KeyListener) a).keyTyped(e);
((KeyListener) b).keyTyped(e);
}
public void mouseClicked(MouseEvent e)
{
((MouseListener) a).mouseClicked(e);
((MouseListener) b).mouseClicked(e);
}
public void mouseEntered(MouseEvent e)
{
((MouseListener) a).mouseEntered(e);
((MouseListener) b).mouseEntered(e);
}
public void mouseExited(MouseEvent e)
{
((MouseListener) a).mouseExited(e);
((MouseListener) b).mouseExited(e);
}
public void mousePressed(MouseEvent e)
{
((MouseListener) a).mousePressed(e);
((MouseListener) b).mousePressed(e);
}
public void mouseReleased(MouseEvent e)
{
((MouseListener) a).mouseReleased(e);
((MouseListener) b).mouseReleased(e);
}
public void mouseDragged(MouseEvent e)
{
((MouseMotionListener) a).mouseDragged(e);
((MouseMotionListener) b).mouseDragged(e);
}
public void mouseMoved(MouseEvent e)
{
((MouseMotionListener) a).mouseMoved(e);
((MouseMotionListener) b).mouseMoved(e);
}
public void textValueChanged(TextEvent e)
{
((TextListener) a).textValueChanged(e);
((TextListener) b).textValueChanged(e);
}
public void windowActivated(WindowEvent e)
{
((WindowListener) a).windowActivated(e);
((WindowListener) b).windowActivated(e);
}
public void windowClosed(WindowEvent e)
{
((WindowListener) a).windowClosed(e);
((WindowListener) b).windowClosed(e);
}
public void windowClosing(WindowEvent e)
{
((WindowListener) a).windowClosing(e);
((WindowListener) b).windowClosing(e);
}
public void windowDeactivated(WindowEvent e)
{
((WindowListener) a).windowDeactivated(e);
((WindowListener) b).windowDeactivated(e);
}
public void windowDeiconified(WindowEvent e)
{
((WindowListener) a).windowDeiconified(e);
((WindowListener) b).windowDeiconified(e);
}
public void windowIconified(WindowEvent e)
{
((WindowListener) a).windowIconified(e);
((WindowListener) b).windowIconified(e);
}
public void windowOpened(WindowEvent e)
{
((WindowListener) a).windowOpened(e);
((WindowListener) b).windowOpened(e);
}
protected static void save(ObjectOutputStream s, String k, EventListener l)
{
// FIXME
}
protected void saveInternal(ObjectOutputStream s, String k)
{
// FIXME
}
}

View File

@ -0,0 +1,18 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* Status: Empty placeholder. */
public class CheckboxGroup
{
// Fields from the serialization spec. Decalare others "transient".
boolean state;
int checkboxMenuItemSerializedDataVersion;
}

View File

@ -0,0 +1,20 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* Status: Just a placeholder. */
public class ColorModel implements Transparency
{
public int getTransparency()
{
// FIXME
return 0;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,84 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
/* Status: Incomplete. Needs a Locale lookup table. */
package java.awt;
import java.util.Locale;
import java.util.ResourceBundle;
public class ComponentOrientation implements java.io.Serializable
{
public static final ComponentOrientation LEFT_TO_RIGHT
= new ComponentOrientation(HORIZONTAL_ID & LEFT_TO_RIGHT_ID);
public static final ComponentOrientation RIGHT_TO_LEFT
= new ComponentOrientation(HORIZONTAL_ID);
public static final ComponentOrientation UNKNOWN
= new ComponentOrientation(0);
// FIXME: This field is from the serialization spec, but what are the
// correct values?
int orientation;
// Here is a wild guess.
private static int HORIZONTAL_ID = 1 << 0,
LEFT_TO_RIGHT_ID = 1 << 1;
ComponentOrientation(int orientation)
{
this.orientation = orientation;
}
public boolean isHorizontal()
{
return ((orientation & HORIZONTAL_ID) != 0);
}
public boolean isLeftToRight()
{
return ((orientation & LEFT_TO_RIGHT_ID) != 0);
}
public static ComponentOrientation getOrientation(Locale locale)
{
// FIXME: Use a table to look this up.
return LEFT_TO_RIGHT;
}
public static ComponentOrientation getOrientation(ResourceBundle bdl)
{
ComponentOrientation r;
try
{
Object obj = bdl.getObject("Orientation");
r = (ComponentOrientation) obj;
if (r != null)
return r;
}
catch (Exception x)
{
// Fall through
}
try
{
Locale l = bdl.getLocale();
r = getOrientation(l);
if (r != null)
return r;
}
catch (Exception x)
{
// Fall through
}
return (getOrientation (Locale.getDefault ()));
}
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1999 Free Software Foundation
/* Copyright (C) 1999, 2000 Free Software Foundation
This file is part of libjava.
@ -8,26 +8,320 @@ details. */
package java.awt;
import java.awt.event.*;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.EventListener;
/* A very incomplete placeholder. */
public abstract class Container extends Component
{
int componentCount;
Component[] components;
/* Serialized fields from the serialization spec. */
int ncomponents;
Component[] component;
LayoutManager layoutMgr;
/* LightweightDispatcher dispatcher; */ // wtf?
Dimension maxSize;
int containerSerializedDataVersion;
public Component[] getComponents()
/* Anything else is non-serializable, and should be declared "transient". */
transient ContainerListener containerListener;
public Container()
{
Component[] result = new Component[componentCount];
if (componentCount > 0)
System.arraycopy(components, 0, result, 0, componentCount);
return result;
}
public int getComponentCount()
{
return ncomponents;
}
/** @deprecated Use getComponentCount() instead. */
public int countComponents()
{
return ncomponents;
}
public Component getComponent (int n)
{
if (n < 0 || n >= componentCount)
if (n < 0 || n >= ncomponents)
throw new ArrayIndexOutOfBoundsException("no such component");
return components[n];
return component[n];
}
public Component[] getComponents()
{
Component[] result = new Component[ncomponents];
if (ncomponents > 0)
System.arraycopy(component, 0, result, 0, ncomponents);
return result;
}
public Insets getInsets()
{
// FIXME
return null;
}
/** @deprecated Use getInsets() instead. */
public Insets insets()
{
return getInsets();
}
public Component add(Component comp)
{
// FIXME
return null;
}
public Component add(String name, Component comp)
{
// FIXME
return null;
}
public Component add(Component comp, int index)
{
// FIXME
return null;
}
public void add(Component comp, Object constraints)
{
// FIXME
}
public void add(Component comp, Object constraints, int index)
{
// FIXME
}
protected void addImpl(Component comp, Object constraints, int index)
{
// FIXME
}
public void remove(int index)
{
// FIXME
}
public void remove(Component comp)
{
// FIXME
}
public void removeAll()
{
// FIXME
}
public LayoutManager getLayout()
{
return layoutMgr;
}
public void setLayout(LayoutManager mgr)
{
layoutMgr = mgr;
// FIXME
}
public void doLayout()
{
// FIXME
}
/** @deprecated Use doLayout() instead. */
public void layout()
{
doLayout();
}
public void invalidate()
{
// FIXME
}
public void validate()
{
// FIXME
}
protected void validateTree()
{
// FIXME
}
public void setFont(Font f)
{
// FIXME
}
public Dimension getPreferredSize()
{
// FIXME
return null;
}
/** @deprecated Use getPreferredSize() instead */
public Dimension preferredSize()
{
return getPreferredSize();
}
public Dimension getMinimumSize()
{
// FIXME
return null;
}
/** @deprecated Use getMinimumSize() instead */
public Dimension minimumSize()
{
return getMinimumSize();
}
public Dimension getMaximumSize()
{
// FIXME
return null;
}
public float getAlignmentX()
{
// FIXME
return 0;
}
public float getAlignmentY()
{
// FIXME
return 0;
}
public void paint(Graphics g)
{
// FIXME
}
public void update(Graphics g)
{
// FIXME
}
public void print(Graphics g)
{
// FIXME
}
public void paintComponents(Graphics g)
{
// FIXME
}
public void printComponents(Graphics g)
{
// FIXME
}
void dispatchEventImpl(AWTEvent e)
{
if ((e.id <= ContainerEvent.CONTAINER_LAST
&& e.id >= ContainerEvent.CONTAINER_FIRST)
&& (containerListener != null
|| (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0))
processEvent(e);
else super.dispatchEventImpl(e);
}
public void addContainerListener(ContainerListener l)
{
containerListener = (ContainerListener)
AWTEventMulticaster.add(containerListener, l);
}
public void removeContainerListener(ContainerListener l)
{
containerListener = (ContainerListener)
AWTEventMulticaster.remove(containerListener, l);
}
/** @since 1.3 */
public EventListener[] getListeners(Class listenerType)
{
if (listenerType == ContainerListener.class)
return getListenersImpl(listenerType, containerListener);
else return super.getListeners(listenerType);
}
protected void processEvent(AWTEvent e)
{
if (e instanceof ContainerEvent)
processContainerEvent((ContainerEvent) e);
else super.processEvent(e);
}
protected void processContainerEvent(ContainerEvent e)
{
if (componentListener == null)
return;
switch (e.id)
{
case ContainerEvent.COMPONENT_ADDED:
containerListener.componentAdded(e);
break;
case ContainerEvent.COMPONENT_REMOVED:
containerListener.componentRemoved(e);
break;
}
}
/** @deprecated */
public void deliverEvent(Event e)
{
}
public Component getComponentAt(int x, int y)
{
// FIXME
return null;
}
/** @deprecated Use getComponentAt() instead */
public Component locate(int x, int y)
{
return getComponentAt(x, y);
}
public Component getComponentAt(Point p)
{
return getComponentAt(p.x, p.y);
}
public Component findComponentAt(int x, int y)
{
// FIXME
return null;
}
public Component findComponentAt(Point p)
{
return findComponentAt(p.x, p.y);
}
public void addNotify ()
{
for (int i = ncomponents; --i >= 0; )
component[i].addNotify();
}
public void removeNotify()
{
// FIXME
}
public boolean isAncestorOf (Component comp)
@ -42,18 +336,18 @@ public abstract class Container extends Component
}
}
public Component add (String name, Component comp)
protected String paramString()
{
/* FIXME */
return comp;
return "FIXME";
}
public void addNotify ()
public void list(PrintStream out, int indent)
{
for (int i = componentCount; --i >= 0; )
components[i].addNotify();
// FIXME
}
public void list(PrintWriter out, int indent)
{
// FIXME
}
public void setLayout (LayoutManager layout)
{ /* FIXME */ }
}

View File

@ -0,0 +1,87 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A somewhat incomplete placeholder. */
public class Cursor
{
public static final int DEFAULT_CURSOR = 0,
CROSSHAIR_CURSOR = 1,
TEXT_CURSOR = 2,
WAIT_CURSOR = 3,
SW_RESIZE_CURSOR = 4,
SE_RESIZE_CURSOR = 5,
NW_RESIZE_CURSOR = 6,
NE_RESIZE_CURSOR = 7,
N_RESIZE_CURSOR = 8,
S_RESIZE_CURSOR = 9,
W_RESIZE_CURSOR = 10,
E_RESIZE_CURSOR = 11,
HAND_CURSOR = 12,
MOVE_CURSOR = 13,
CUSTOM_CURSOR = 0xFFFFFFFF;
private static final int PREDEFINED_COUNT = 14;
protected static Cursor[] predefined = new Cursor[PREDEFINED_COUNT];
protected String name;
int type;
public Cursor(int type)
{
this.type = type;
// FIXME: lookup and set name?
}
/** This constructor is used internally only.
* Application code should call Toolkit.createCustomCursor().
*/
protected Cursor(String name)
{
this.name = name;
// FIXME
}
public static Cursor getPredefinedCursor(int type)
{
if (type >= PREDEFINED_COUNT)
return null;
if (predefined[type] == null)
predefined[type] = new Cursor(type);
return predefined[type];
}
public static Cursor getSystemCustomCursor(String name)
throws AWTException
{
// FIXME
return null;
}
public static Cursor getDefaultCursor()
{
return getPredefinedCursor(0);
}
public int getType()
{
return type;
}
public String getName()
{
return name;
}
public String toString()
{
return (this.getClass() + "[" + getName() + "]");
}
}

View File

@ -11,8 +11,7 @@ package java.awt;
/**
* Written using on-line Java Platform 1.2 API Specification, as well
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
* Status: Believed complete and correct, except for the paramString()
* method, which is stubbed.
* Status: Believed complete and correct.
*/
public class Event
@ -132,7 +131,7 @@ public class Event
protected String paramString ()
{
return "Event.paramString() not implemented";
return "id=" + id + ",x=" + x + ",y=" + y + "target=" + target;
}
public boolean shiftDown()
@ -142,9 +141,7 @@ public class Event
public String toString()
{
String r = getClass() + "[id=" + id + ",x=" + x + ",y=" + y + "target="
+ ((target == null) ? "null" : target) + "]";
return r;
return getClass().getName() + "[" + paramString() + "]";
}
public void translate (int x, int y)

View File

@ -0,0 +1,45 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
/** @author Bryce McKinlay */
/* Status: believed complete, but untested. */
package java.awt;
class EventDispatchThread extends Thread
{
private static int dispatchThreadNum = 1;
private EventQueue queue;
EventDispatchThread(EventQueue queue)
{
super();
setName("AWT-EventQueue-" + dispatchThreadNum++);
this.queue = queue;
setPriority(NORM_PRIORITY + 1);
}
public void run()
{
while (true)
{
try
{
AWTEvent evt = queue.getNextEvent();
queue.dispatchEvent(evt);
}
catch (Throwable x)
{
System.err.println("Exception during event dispatch:");
x.printStackTrace(System.err);
}
}
}
}

View File

@ -0,0 +1,259 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
import java.awt.event.*;
import java.util.EmptyStackException;
import java.lang.reflect.InvocationTargetException;
/* Written using on-line Java 2 Platform Standard Edition v1.3 API
* Specification, as well as "The Java Class Libraries", 2nd edition
* (Addison-Wesley, 1998).
* Status: Believed complete, but untested. Check FIXME's.
*/
/** @author Bryce McKinlay */
public class EventQueue
{
private static final int INITIAL_QUEUE_DEPTH = 8;
private AWTEvent[] queue = new AWTEvent[INITIAL_QUEUE_DEPTH];
private int next_in = 0; // Index where next event will be added to queue
private int next_out = 0; // Index of next event to be removed from queue
private EventQueue next;
private EventQueue prev;
private EventDispatchThread dispatchThread = new EventDispatchThread(this);
public EventQueue()
{
}
public synchronized AWTEvent getNextEvent()
throws InterruptedException
{
if (next != null)
return next.getNextEvent();
while (next_in == next_out)
wait();
AWTEvent res = queue[next_out];
if (++next_out == queue.length)
next_out = 0;
return res;
}
/** @specnote Does not block. Returns null if there are no events on the
* queue.
*/
public synchronized AWTEvent peekEvent()
{
if (next != null)
return next.peekEvent();
if (next_in != next_out)
return queue[next_out];
else return null;
}
/** @specnote Does not block. Returns null if there are no matching events
* on the queue.
*/
public synchronized AWTEvent peekEvent(int id)
{
if (next != null)
return next.peekEvent(id);
int i = next_out;
while (i != next_in)
{
AWTEvent qevt = queue[i];
if (qevt.id == id)
return qevt;
}
return null;
}
public synchronized void postEvent(AWTEvent evt)
{
if (next != null)
{
next.postEvent(evt);
return;
}
// FIXME: Security checks?
/* Check for any events already on the queue with the same source
and ID. */
int i = next_out;
while (i != next_in)
{
AWTEvent qevt = queue[i];
Object src;
if (qevt.id == evt.id
&& (src = qevt.getSource()) == evt.getSource()
&& src instanceof Component)
{
/* If there are, call coalesceEvents on the source component
to see if they can be combined. */
Component srccmp = (Component) src;
AWTEvent coalesced_evt = srccmp.coalesceEvents(qevt, evt);
if (coalesced_evt != null)
{
/* Yes. Replace the existing event with the combined event. */
queue[i] = coalesced_evt;
return;
}
break;
}
if (++i == queue.length)
i = 0;
}
queue[next_in] = evt;
if (++next_in == queue.length)
next_in = 0;
if (next_in == next_out)
{
/* Queue is full. Extend it. */
AWTEvent[] oldQueue = queue;
queue = new AWTEvent[queue.length * 2];
int len = oldQueue.length - next_out;
System.arraycopy(oldQueue, next_out, queue, 0, len);
if (next_out != 0)
System.arraycopy(oldQueue, 0, queue, len, next_out);
next_out = 0;
next_in = oldQueue.length;
}
notify();
}
/** @since JDK1.2 */
public static void invokeAndWait(Runnable runnable)
throws InterruptedException, InvocationTargetException
{
// FIXME: Is this an appropriate way to access the event queue?
EventQueue eq = Toolkit.systemEventQueue;
Thread current = Thread.currentThread();
if (current == eq.dispatchThread)
throw new Error("Can't call invokeAndWait from event dispatch thread");
InvocationEvent ie =
new InvocationEvent(eq, runnable, current, true);
eq.postEvent(ie);
synchronized (current)
{
current.wait();
}
Exception exception;
if ((exception = ie.getException()) != null)
throw new InvocationTargetException(exception);
}
/** @since JDK1.2 */
static void invokeLater(Runnable runnable)
{
// FIXME: Is this an appropriate way to access the event queue?
EventQueue eq = Toolkit.systemEventQueue;
InvocationEvent ie =
new InvocationEvent(eq, runnable, null, false);
eq.postEvent(ie);
}
static boolean isDispatchThread()
{
// FIXME: Is this an appropriate way to access the event queue?
EventQueue eq = Toolkit.systemEventQueue;
return (Thread.currentThread() == eq.dispatchThread);
}
/** Allows a custom EventQueue implementation to replace this one.
* All pending events are transferred to the new queue. Calls to postEvent,
* getNextEvent, and peekEvent are forwarded to the pushed queue until it
* is removed with a pop().
*/
public synchronized void push(EventQueue newEventQueue)
{
int i = next_out;
while (i != next_in)
{
newEventQueue.postEvent(queue[i]);
next_out = i;
if (++i == queue.length)
i = 0;
}
next = newEventQueue;
newEventQueue.prev = this;
}
/** Transfer any pending events from this queue back to the parent queue that
* was previously push()ed. Event dispatch from this queue is suspended. */
protected void pop() throws EmptyStackException
{
if (prev == null)
throw new EmptyStackException();
// Don't synchronize both this and prev at the same time, or deadlock could
// occur.
synchronized (prev)
{
prev.next = null;
}
synchronized (this)
{
int i = next_out;
while (i != next_in)
{
prev.postEvent(queue[i]);
next_out = i;
if (++i == queue.length)
i = 0;
}
}
}
protected void dispatchEvent(AWTEvent evt)
{
if (evt instanceof ActiveEvent)
{
ActiveEvent active_evt = (ActiveEvent) evt;
active_evt.dispatch();
}
else
{
Object source = evt.getSource();
if (source instanceof Component)
{
Component srccmp = (Component) source;
srccmp.dispatchEvent(evt);
}
else if (source instanceof MenuComponent)
{
MenuComponent srccmp = (MenuComponent) source;
srccmp.dispatchEvent(evt);
}
}
}
}

View File

@ -8,6 +8,8 @@ details. */
package java.awt;
import java.util.Locale;
/**
* @author Warren Levy <warrenl@cygnus.com>
* @date March 16, 2000.
@ -71,6 +73,18 @@ public class Font
return name;
}
public String getFamily()
{
// FIXME
return null;
}
public String getFamily(Locale l)
{
// FIXME
return null;
}
public int getStyle()
{
return style;
@ -87,4 +101,20 @@ public class Font
}
public static Font decode(String str) { return null; } // FIXME
public String toString()
{
String style_str = "";
if (isPlain())
style_str = "plain";
else
{
if (isBold())
style_str += "bold";
if (isItalic())
style_str += "italic";
}
return getClass().getName() + "[family=" + getFamily() + ",name=" +
getName() + ",style=" + style_str + ",size=" + getSize() + "]";
}
}

View File

@ -0,0 +1,153 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/**
* Status: Stubbed; A very incomplete implementation.
*/
public class FontMetrics implements java.io.Serializable
{
protected Font font;
protected FontMetrics(Font font)
{
this.font = font;
}
public Font getFont()
{
return font;
}
public int getLeading()
{
// FIXME??
return getHeight() - (getDescent() + getAscent());
}
public int getAscent()
{
// FIXME??
return getHeight() - (getDescent() + getLeading());
}
public int getDescent()
{
// FIXME??
return getHeight() - getDescent();
}
public int getHeight()
{
// FIXME??
return getLeading() + getAscent() + getDescent();
}
public int getMaxAscent()
{
// FIXME
return 0;
}
public int getMaxDescent()
{
// FIXME
return 0;
}
/* @deprecated Use getMaxDescent() instead. */
public int getMaxDecent()
{
return getMaxDescent();
}
public int getMaxAdvance()
{
// FIXME
return 0;
}
public int charWidth(int ch)
{
// FIXME
return 0;
}
public int charWidth(char ch)
{
// FIXME
return 0;
}
public int stringWidth(String str)
{
return charsWidth(str.toCharArray(), 0, str.length());
}
public int charsWidth(char[] data, int off, int len)
{
// FIXME
return -1;
}
public int bytesWidth(byte[] data, int off, int len)
{
// FIXME?
return -1;
}
public int[] getWidths()
{
// FIXME
return new int[0];
}
public boolean hasUniformLineMetrics()
{
// FIXME
return false;
}
// Don't have LineMetrics yet...
/*
public LineMetrics getLineMetrics(String str, Graphics context)
public LineMetrics getLineMetrics(String str, int beginIndex, int limit,
Graphics context)
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit,
Graphics context)
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex,
int limit, Graphics context)
*/
// Don't have Java2D yet.
/*
public Rectangle2D getStringBounds(String str, Graphics context)
public Rectangle2D getStringBounds(String str, int beginIndex, int limit,
Graphics context)
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit,
Graphics context)
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex,
int limit, Graphics context)
public Rectangle2D getMaxCharBounds(Graphics context)
*/
public String toString()
{
return this.getClass() + "[font=" + font + ",ascent=" + getAscent()
+ ",descent=" + getDescent() + ",height=" + getHeight() + "]";
}
}

View File

@ -0,0 +1,28 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
/* Status: Complete, but commented out until we have the required Java2D
classes. */
package java.awt;
public abstract class GraphicsConfiguration
{
/*
public abstract GraphicsDevice getDevice();
public abstract BufferedImage createCompatibleImage(int width, int height);
public abstract BufferedImage createCompatibleImage(int width, int height,
int transparency);
public abstract ColorModel getColorModel();
public abstract ColorModel getColorModel(int transparency);
public abstract AffineTransform getDefaultTransform();
public abstract AffineTransform getNormalizingTransform();
*/
/* @since 1.3 */
public abstract Rectangle getBounds();
}

View File

@ -0,0 +1,56 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
public class Insets implements Cloneable, java.io.Serializable
{
public int top;
public int left;
public int bottom;
public int right;
public Insets(int top, int left, int bottom, int right)
{
this.top = top;
this.left = left;
this.bottom = bottom;
this.right = right;
}
public boolean equals(Object obj)
{
if (obj instanceof Insets)
{
Insets i = (Insets) obj;
return (i.top == top
&& i.left == left
&& i.bottom == bottom
&& i.right == right);
}
return false;
}
public int hashCode()
{
// FIXME: what is the correct algorithm for this?
return (top * (2 * left) * (3 * right) * (4 * bottom));
}
public String toString()
{
return (getClass() + "[top=" + top + ",left=" + left + ",bottom="
+ bottom + ",right=" + right + "]");
}
public Object clone()
{
Insets r = new Insets(top, left, bottom, right);
return r;
}
}

View File

@ -8,26 +8,128 @@ details. */
package java.awt;
/* A very incomplete placeholder. */
import java.util.Vector;
/* Status: Incomplete. */
public class Menu extends MenuItem implements MenuContainer
{
public Menu (String label)
// Fields from the serialization spec. Decalare others "transient".
Vector items = new Vector();
boolean tearOff;
boolean isHelpMenu;
int menuSerializedDataVersion;
static final MenuItem separator = new MenuItem("-");
public Menu()
{
super(label); // ???
throw new Error ("java.awt.Menu: not implemented");
this(null, false);
}
public Menu(String label)
{
this(label, false);
}
public Menu(String label, boolean tearOff)
{
super(label);
this.tearOff = tearOff;
}
public void add (String label)
{ /* FIXME */ }
public synchronized MenuItem add (MenuItem item)
public void addNotify()
{
/* FIXME */
return item;
// FIXME
}
public Font getFont() { return null; } // FIXME
public boolean postEvent(Event evt) { return false; } // FIXME
public void remove(MenuComponent comp) { } // FIXME
public void removeNotify()
{
// FIXME
}
public boolean isTearOff()
{
return tearOff;
}
public int getItemCount()
{
return items.size();
}
/** @deprecated Use getItemCount() instead. */
public int countItems()
{
return getItemCount();
}
public MenuItem getItem(int index)
{
return (MenuItem) items.elementAt(index);
}
public synchronized MenuItem add(MenuItem mi)
{
items.addElement(mi);
if (mi.parent != null)
{
mi.parent.remove(mi);
}
mi.parent = this;
return mi;
}
public void add(String label)
{
MenuItem mi = new MenuItem(label);
this.add(mi);
}
public synchronized void insert(MenuItem menuitem, int index)
{
if (index < 0)
throw new IllegalArgumentException();
items.insertElementAt(menuitem, index);
}
public void insert(String label, int index)
{
MenuItem mi = new MenuItem(label);
this.insert(mi, index);
}
public void addSeparator()
{
this.add(separator);
}
public void insertSeparator(int index)
{
this.insert(separator, index);
}
public synchronized void remove(int index)
{
items.removeElementAt(index);
}
public synchronized void remove(MenuComponent item)
{
items.removeElement(item);
}
public synchronized void removeAll()
{
items.removeAllElements();
}
public String paramString()
{
return getName() + ",label" + label + ",tearOff=" + tearOff +
",isHelpMenu=" + isHelpMenu;
}
// Accessibility API not yet implemented.
// public AccessibleContext getAccessibleContext()
}

View File

@ -1,15 +1,118 @@
/* Copyright (C) 1999 Free Software Foundation
/* Copyright (C) 1999, 2000 Free Software Foundation
This file is part of libjava.
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
/* Status: partially complete, untested. */
public abstract class MenuComponent
{
// Fields from the serialization spec. Decalare others "transient".
Font font;
String name;
boolean nameExplicitlySet;
boolean newEventsOnly;
//AccessibleContext accessibleContext;
transient MenuContainer parent;
transient java.awt.peer.MenuComponentPeer peer;
public MenuComponent()
{
}
public String getName()
{
if (name == null && !nameExplicitlySet)
name = generateName();
return name;
}
/** Subclasses should override this to generate unique names like
* "menuitem0".
*/
String generateName()
{
// MenuComponent is abstract.
return null;
}
public void setName(String name)
{
nameExplicitlySet = true;
this.name = name;
}
public MenuContainer getParent()
{
return parent;
}
/** @deprecated Don't use this. */
public java.awt.peer.MenuComponentPeer getPeer()
{
return peer;
}
public Font getFont()
{
return font;
}
public void setFont(Font f)
{
this.font = f;
}
public void removeNotify()
{
// FIXME
}
/** @deprecated Replaced by dispatchEvent(AWTEvent) */
public boolean postEvent(Event evt)
{
return false;
}
public final void dispatchEvent(AWTEvent e)
{
// FIXME
dispatchEventImpl(e);
}
void dispatchEventImpl(AWTEvent e)
{
// This is overridden by subclasses that support events.
}
protected void processEvent(AWTEvent e)
{
// Nothing to do here? This is be overridden by subclasses that
// support events.
}
protected String paramString()
{
return name;
}
public String toString()
{
return this.getClass().getName() + "[" + paramString() + "]";
}
protected final Object getTreeLock()
{
// FIXME: figure out how the tree lock works.
return null;
}
// Accessibility API not yet implemented.
// public AccessibleContext getAccessibleContext()
}

View File

@ -1,25 +1,159 @@
/* Copyright (C) 1999 Free Software Foundation
/* Copyright (C) 1999, 2000 Free Software Foundation
This file is part of libjava.
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
import java.awt.event.*;
import java.util.EventListener;
/* A very incomplete placeholder. */
public class MenuItem extends MenuComponent
{
// Fields from the serialization spec. Decalare others "transient".
boolean enabled;
String label;
String actionCommand;
long eventMask;
MenuShortcut shortcut;
int menuItemSerializedDataVersion;
transient ActionListener actionListener;
public MenuItem (String label)
{
throw new Error("java.awt.MenuItem: not implemented");
this.label = label;
}
public synchronized void addActionListener (ActionListener listener)
public String getLabel()
{
/* FIXME */
return label;
}
public synchronized void setLabel(String label)
{
this.label = label;
}
public boolean isEnabled()
{
return enabled;
}
public synchronized void setEnabled(boolean b)
{
this.enabled = b;
}
/** @deprecated Use setEnabled() instead. */
public void enable()
{
setEnabled(true);
}
/** @deprecated Use setEnabled() instead. */
public void enable(boolean b)
{
setEnabled(b);
}
/** @deprecated Use setEnabled() instead. */
public void disable()
{
setEnabled(false);
}
public MenuShortcut getShortcut()
{
return shortcut;
}
public void setShortcut(MenuShortcut s)
{
this.shortcut = s;
}
public void deleteShortcut()
{
setShortcut(null);
}
protected final void enableEvents(long eventsToEnable)
{
eventMask |= eventsToEnable;
// TODO: see comment in Component.enableEvents().
}
protected final void disableEvents(long eventsToDisable)
{
eventMask &= ~eventsToDisable;
}
public void setActionCommand(String command)
{
this.actionCommand = command;
}
public String getActionCommand()
{
return actionCommand;
}
public synchronized void addActionListener(ActionListener l)
{
actionListener = AWTEventMulticaster.add(actionListener, l);
if (actionListener != null)
enableEvents(AWTEvent.ACTION_EVENT_MASK);
}
public synchronized void removeActionListener(ActionListener l)
{
actionListener = AWTEventMulticaster.remove(actionListener, l);
}
/** Returns all registered EventListers of the given listenerType.
* listenerType must be a subclass of EventListener, or a
* ClassClassException is thrown.
* @since 1.3
*/
public EventListener[] getListeners(Class listenerType)
{
if (listenerType == ActionListener.class)
return Component.getListenersImpl(listenerType, actionListener);
else
return Component.getListenersImpl(listenerType, null);
}
void dispatchEventImpl(AWTEvent e)
{
if (e.id <= ActionEvent.ACTION_LAST
&& e.id >= ActionEvent.ACTION_FIRST
&& (actionListener != null
|| (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0))
processEvent(e);
}
protected void processEvent(AWTEvent e)
{
if (e instanceof ActionEvent)
processActionEvent((ActionEvent) e);
}
protected void processActionEvent(ActionEvent e)
{
if (actionListener != null)
actionListener.actionPerformed(e);
}
public String paramString()
{
return name + ",label=" + label;
}
// Accessibility API not yet implemented.
// public AccessibleContext getAccessibleContext()
}

View File

@ -0,0 +1,75 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
import java.awt.event.KeyEvent;
/* Status: Complete, except for hashCode(). Untested. */
public class MenuShortcut
{
// Fields from the serialization spec. Decalare others "transient".
int key;
boolean usesShift;
public MenuShortcut(int key)
{
this.key = key;
}
public MenuShortcut(int key, boolean useShiftModifier)
{
this.key = key;
this.usesShift = useShiftModifier;
}
public int getKey()
{
return key;
}
public boolean usesShiftModifier()
{
return usesShift;
}
public boolean equals(MenuShortcut ms)
{
return (ms.key == key && ms.usesShift == usesShift);
}
public boolean equals(Object obj)
{
if (obj instanceof MenuShortcut)
{
MenuShortcut ms = (MenuShortcut) obj;
return (ms.key == key && ms.usesShift == usesShift);
}
return false;
}
public int hashCode()
{
// FIXME: find/implement the correct algorithm for this
if (usesShift)
return (2 * key);
else
return key;
}
public String toString()
{
return paramString(); // ?
}
protected String paramString()
{
return KeyEvent.getKeyText(key);
}
}

View File

@ -0,0 +1,32 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* An incomplete placeholder. */
public class Panel extends Container
{
public Panel()
{
super();
}
public Panel(LayoutManager layout)
{
super();
setLayout (layout);
}
//public AccessibleContext getAccessibleContext()
public void addNotify()
{
// FIXME
}
}

View File

@ -0,0 +1,37 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libjava.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
details. */
package java.awt;
/* Status: Incomplete. */
public class PopupMenu extends Menu
{
public PopupMenu()
{
super();
}
public PopupMenu(String label)
{
super(label);
}
public void addNotify()
{
// FIXME
}
public void show(Component origin, int x, int y)
{
// FIXME
}
// Accessibility API not yet implemented.
// public AccessibleContext getAccessibleContext()
}

View File

@ -8,28 +8,324 @@ details. */
package java.awt;
/* Status: Quite imcomplete. */
/* Status: Mostly complete. Some of the Java2D stuff is commented out. */
public class Rectangle implements Shape
// FIXME: Should extend Rectangle2D for 1.2 implementation
public class Rectangle implements Cloneable, Shape
{
public int x;
public int y;
public int width;
public int height;
public Rectangle () { }
public Rectangle (int width, int height)
{ this.width = width; this.height = height; }
public Rectangle (int x, int y, int width, int height)
public Rectangle()
{
this.x = x; this.y = y;
this.width = width; this.height = height;
x = 0;
y = 0;
width = 0;
height = 0;
}
public Rectangle(Rectangle r)
{
x = r.x;
y = r.y;
width = r.width;
height = r.height;
}
public Rectangle(int x, int y, int width, int height)
{
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
public Rectangle(int width, int height)
{
x = 0;
y = 0;
this.width = width;
this.height = height;
}
public Rectangle(Point p, Dimension d)
{
x = p.x;
y = p.y;
width = d.width;
height = d.height;
}
public Rectangle(Point p)
{
x = p.x;
y = p.y;
width = 0;
height = 0;
}
public Rectangle(Dimension d)
{
x = 0;
y = 0;
width = d.width;
height = d.height;
}
public Rectangle getBounds ()
{
return new Rectangle (x, y, width, height);
return (Rectangle) this.clone();
}
public void add(int newx, int newy)
{
int x = this.x > newx ? newx : this.x;
int y = this.y > newy ? newy : this.y;
width = (this.x + width > newx ? this.x + width : newx) - x;
height = (this.y + height > newy ? this.y + height : newy) - y;
this.x = x;
this.y = y;
}
public void add(Point pt)
{
add (pt.x, pt.y);
}
public void add(Rectangle r)
{
int x = this.x > r.x ? r.x : this.x;
int y = this.y > r.y ? r.y : this.y;
width = (this.x + width > r.x + r.width ?
this.x + width : r.x + r.width) - x;
height = (this.y + height > r.y + r.height ?
this.y + height : r.y + r.height) - y;
this.x = x;
this.y = y;
}
public boolean contains(int x, int y)
{
return (x >= this.x && x <= this.x + this.width
&& y >= this.y && y <= this.y + this.height);
}
public boolean contains(int x, int y, int w, int h)
{
return (x >= this.x && x + w <= this.x + this.width
&& y >= this.y && y + h <= this.y + this.height);
}
public boolean contains(Point p)
{
return contains(p.x, p.y);
}
public boolean contains(Rectangle r)
{
return contains(r.x, r.y, r.width, r.height);
}
public boolean equals(Object obj)
{
if (obj instanceof Rectangle)
{
Rectangle r = (Rectangle) obj;
return (r.x == x
&& r.y == y
&& r.width == width
&& r.height == height);
}
return false;
}
public double getHeight()
{
return (double) this.height;
}
public Point getLocation()
{
return new Point(x,y);
}
public Dimension getSize()
{
return new Dimension(width, height);
}
public double getWidth()
{
return (double) this.width;
}
public double getX()
{
return (double) x;
}
public double getY()
{
return (double) y;
}
public void grow(int h, int v)
{
width += h;
height += v;
}
/** @deprecated Use contains() instead. */
public boolean inside(int x, int y)
{
return contains(x, y);
}
/** @specnote If there is no intersection, an empty rectangle at 0,0
* is returned.
*/
public Rectangle intersection(Rectangle r)
{
int newx = x < r.x ? r.x : x;
int newy = y < r.y ? r.y : y;
int neww = (x + width < r.x + r.width ?
x + width : r.x + r.width) - newx;
int newh = (y + height < r.y + r.height ?
y + height : r.y + r.height) - newy;
if (neww >= 0 && newh >= 0)
return new Rectangle(newx, newy, neww, newh);
else
return new Rectangle(0, 0, 0, 0);
}
/** @specnote If the intersection is at an edge or corner only (an empty
* intersection with a non-zero location), false is returned.
*/
public boolean intersects(Rectangle r)
{
int neww = (x + width < r.x + r.width ?
x + width : r.x + r.width) - (x < r.x ? r.x : x);
int newh = (y + height < r.y + r.height ?
y + height : r.y + r.height) - (y < r.y ? r.y : y);
return (neww > 0 && newh > 0);
}
public boolean isEmpty()
{
return (width > 0 && height > 0);
}
/** @deprecated Use setLocation() instead. */
public void move(int x, int y)
{
setLocation(x, y);
}
public int outcode(double x, double y)
{
// FIXME
return 0;
}
/** @deprecated Use setBounds() instead. */
public void reshape(int x, int y, int width, int height)
{
setBounds(x, y, width, height);
}
/** @deprecated Use setSize() instead. */
public void resize(int width, int height)
{
setSize(width, height);
}
public void setBounds(int x, int y, int width, int height)
{
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
public void setBounds(Rectangle r)
{
this.x = r.x;
this.y = r.y;
this.width = r.width;
this.height = r.height;
}
public void setLocation(int x, int y)
{
this.x = x;
this.y = y;
}
public void setLocation(Point p)
{
this.x = p.x;
this.y = p.y;
}
public void setRect(double x, double y, double width, double height)
{
this.x = (int) x;
this.y = (int) y;
this.width = (int) width;
this.height = (int) height;
}
public void setSize(Dimension d)
{
this.width = d.width;
this.height = d.height;
}
public void setSize(int width, int height)
{
this.width = width;
this.height = height;
}
public void translate(int x, int y)
{
x += x;
y += y;
}
public Rectangle union(Rectangle r)
{
int newx = x > r.x ? r.x : x;
int newy = y > r.y ? r.y : y;
int neww = (this.x + width > r.x + r.width ?
this.x + width : r.x + r.width) - newx;
int newh = (this.y + height > r.y + r.height ?
this.y + height : r.y + r.height) - newy;
return new Rectangle(newx, newy, neww, newh);
}
// Commented out until we have Rectangle2D
/*
public Rectangle2D createIntersection(Rectangle2D r)
{
}
public Rectangle2D createUnion(Rectangle2D r)
{
}
public Rectangle2D getBounds2D()
{
}
*/
public String toString()
{
return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width +
",height=" + height + "]";
}
}

View File

@ -15,6 +15,7 @@ import java.net.URL;
public abstract class Toolkit
{
static Toolkit defaultToolkit;
static EventQueue systemEventQueue = new EventQueue();
public static synchronized Toolkit getDefaultToolkit()
{
@ -26,6 +27,11 @@ public abstract class Toolkit
protected abstract FramePeer createFrame(Frame target);
public abstract Image getImage(URL url);
public final EventQueue getSystemEventQueue()
{
return systemEventQueue;
}
private static void init() { }
// private static native void init();
// static { init(); }

View File

@ -21,25 +21,25 @@ public class ActionEvent extends AWTEvent
public static final int META_MASK = 4;
public static final int SHIFT_MASK = 1;
String actionCommand;
String cmd;
int modifiers;
public ActionEvent (Object source, int id, String command)
{
super(source, id);
actionCommand = command;
cmd = command;
}
public ActionEvent (Object source, int id, String command, int modifiers)
{
super(source, id);
actionCommand = command;
cmd = command;
this.modifiers = modifiers;
}
public String getActionCommand ()
public String getcmd ()
{
return actionCommand;
return cmd;
}
public int getModifiers ()
@ -49,7 +49,18 @@ public class ActionEvent extends AWTEvent
public String paramString ()
{
return ("ActionEvent[" + actionCommand + "," + modifiers
+ ";" + super.paramString () + "]");
String r;
switch (id)
{
case ACTION_PERFORMED:
r = "ACTION_PERFORMED";
break;
default:
r = "unknown type";
break;
}
r += ",cmd=" + cmd;
return r;
}
}

View File

@ -30,7 +30,7 @@ public class AdjustmentEvent extends AWTEvent
public AdjustmentEvent (Adjustable source, int id, int type, int value)
{
super (source, id);
this.type = type;
this.adjType = type;
this.value = value;
}
@ -41,7 +41,7 @@ public class AdjustmentEvent extends AWTEvent
public int getAdjustmentType ()
{
return type;
return adjType;
}
public int getValue ()
@ -51,10 +51,45 @@ public class AdjustmentEvent extends AWTEvent
public String paramString ()
{
return ("AdjustmentEvent[" + type + "," + value
+ ";" + super.paramString () + "]");
String r;
switch (id)
{
case ADJUSTMENT_VALUE_CHANGED:
r = "ADJUSTMENT_VALUE_CHANGED";
break;
default:
r = "unknown id";
break;
}
r += ",adjType=";
switch (adjType)
{
case BLOCK_DECREMENT:
r += "BLOCK_DECREMENT";
break;
case BLOCK_INCREMENT:
r += "BLOCK_INCREMENT";
break;
case TRACK:
r += "TRACK";
break;
case UNIT_DECREMENT:
r += "UNIT_DECREMENT";
break;
case UNIT_INCREMENT:
r += "UNIT_INCREMENT";
break;
default:
r += "unknown type";
break;
}
r += ",value=" + value;
return r;
}
private int type;
private int adjType;
private int value;
}

View File

@ -37,6 +37,25 @@ public class ComponentEvent extends AWTEvent
public String paramString ()
{
return super.paramString ();
String r;
switch (id)
{
case COMPONENT_HIDDEN:
r = "COMPONENT_HIDDEN";
break;
case COMPONENT_MOVED:
r = "COMPONENT_MOVED";
break;
case COMPONENT_RESIZED:
r = "COMPONENT_RESIZED";
break;
case COMPONENT_SHOWN:
r = "COMPONENT_SHOWN";
break;
default:
r = "unknown id";
break;
}
return r;
}
}

View File

@ -23,8 +23,8 @@ public class ContainerEvent extends ComponentEvent
public static final int CONTAINER_FIRST = 300;
public static final int CONTAINER_LAST = 301;
// FIXME: jdk1.2 docs say source is a Component.
public ContainerEvent (Container source, int id, Component child)
/** @specnote In JDK1.2 and 1.3, source is a Component. */
public ContainerEvent (Component source, int id, Component child)
{
super (source, id);
this.child = child;
@ -35,15 +35,29 @@ public class ContainerEvent extends ComponentEvent
return child;
}
public Component getContainer ()
public Component getComponent ()
{
return (Container) source;
return (Component) source;
}
public String paramString ()
{
return ("ContainerEvent[" + child
+ ";" + super.paramString () + "]");
String r;
switch (id)
{
case COMPONENT_ADDED:
r = "COMPONENT_ADDED";
break;
case COMPONENT_REMOVED:
r = "COMPONENT_REMOVED";
break;
default:
r = "unknown id";
break;
}
r += ",child=" + child;
return r;
}
private Component child;

View File

@ -42,8 +42,21 @@ public class FocusEvent extends AWTEvent
public String paramString ()
{
return ("FocusEvent[" + temporary
+ ";" + super.paramString () + "]");
String r = "";
switch (id)
{
case FOCUS_GAINED:
r += "FOCUS_GAINED";
break;
case FOCUS_LOST:
r += "FOCUS_LOST";
break;
default:
r += "unknown id";
break;
}
r += (temporary ? "temporary" : "permanent");
return r;
}
private boolean temporary;

View File

@ -0,0 +1,27 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.event;
/**
* @since 1.3
* @author Bryce McKinlay
*/
/* Status: Believed complete and correct. */
public abstract class HierarchyBoundsAdapter implements HierarchyBoundsListener
{
public void ancestorMoved(HierarchyEvent e)
{
}
public void ancestorResized(HierarchyEvent e)
{
}
}

View File

@ -0,0 +1,22 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.event;
/**
* @since 1.3
* @author Bryce McKinlay
*/
/* Status: Believed complete and correct. */
public interface HierarchyBoundsListener extends java.util.EventListener
{
public void ancestorMoved(HierarchyEvent e);
public void ancestorResized(HierarchyEvent e);
}

View File

@ -0,0 +1,96 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.event;
import java.awt.*;
/**
* @since 1.3
* @author Bryce McKinlay
*/
/* Status: thought to be complete and correct. */
public class HierarchyEvent extends AWTEvent
{
public static final int PARENT_CHANGED = 1 << 0,
DISPLAYABILITY_CHANGED = 1 << 1,
SHOWING_CHANGED = 1 << 2,
HIERARCHY_FIRST = 1400,
HIERARCHY_CHANGED = 1400,
ANCESTOR_MOVED = 1401,
ANCESTOR_RESIZED = 1402,
HIERARCHY_LAST = 1402;
/* Serialized fields from the serialization spec. */
Component changed;
Container changedParent;
long changeFlags = 0;
public HierarchyEvent(Component source, int id, Component changed,
Container changedParent)
{
super(source, id);
this.changed = changed;
this.changedParent = changedParent;
}
public HierarchyEvent(Component source, int id, Component changed,
Container changedParent, long changeFlags)
{
super(source,id);
this.changed = changed;
this.changedParent = changedParent;
this.changeFlags = changeFlags;
}
public Component getComponent()
{
return (Component) source;
}
public Component getChanged()
{
return changed;
}
public Container getChangedParent()
{
return changedParent;
}
public long getChangeFlags()
{
return changeFlags;
}
public String paramString()
{
String r;
switch (id)
{
case HIERARCHY_CHANGED:
r = "HIERARCHY_CHANGED";
break;
case ANCESTOR_MOVED:
r = "ANCESTOR_MOVED";
break;
case ANCESTOR_RESIZED:
r = "ANCESTOR_RESIZED";
break;
default:
return "unknown type";
}
r += "(" + changed + "," + changedParent + ")";
return r;
}
}

View File

@ -0,0 +1,21 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.event;
/**
* @since 1.3
* @author Bryce McKinlay
*/
/* Status: Believed complete and correct. */
public interface HierarchyListener extends java.util.EventListener
{
public void hierarchyChanged(HierarchyEvent e);
}

View File

@ -43,7 +43,21 @@ public class InputMethodEvent extends AWTEvent
public TextHitInfo getVisiblePosition ();
public boolean isConsumed ();
public String paramString ();
public String paramString ()
{
String r;
switch (id)
{
case CARET_POSITION_CHANGED:
r = "CARET_POSITION_CHANGED";
break;
case INPUT_METHOD_TEXT_CHANGED:
r = "INPUT_METHOD_TEXT_CHANGED";
break;
}
r += ""; // FIXME
return r;
}
*/
// FIXME: this is just to let it compile.

View File

@ -14,7 +14,7 @@ import java.awt.*;
* @date April 8, 2000
*/
/* Status: Still one bug. */
/* Status: Believed to be complete and correct. */
public class InvocationEvent extends AWTEvent implements ActiveEvent
{
@ -37,28 +37,29 @@ public class InvocationEvent extends AWTEvent implements ActiveEvent
this.runnable = runnable;
}
public InvocationEvent (Object source, Runnable runnable, Object notifier)
public InvocationEvent(Object source, Runnable runnable, Object notifier,
boolean catchExceptions)
{
super (source, INVOCATION_DEFAULT);
this.runnable = runnable;
this.notifier = notifier;
this.catchExceptions = catchExceptions;
}
public void dispatch ()
{
Exception e = null;
try
{
runnable.run ();
}
catch (Exception _)
{
e = _;
}
// FIXME: what to do if !catchExceptions?
if (catchExceptions)
exception = e;
try
{
runnable.run ();
}
catch (Exception x)
{
exception = x;
}
else
runnable.run ();
if (notifier != null)
notifier.notifyAll ();
@ -71,9 +72,15 @@ public class InvocationEvent extends AWTEvent implements ActiveEvent
public String paramString ()
{
return ("InvocationEvent[" + notifier + "," + runnable
+ "," + catchExceptions
+ ";" + super.paramString () + "]");
String r;
if (id == INVOCATION_DEFAULT)
r = "INVOCATION_DEFAULT";
else
r = "unknown type";
r += ",runnable=" + runnable + ",notifier=" + notifier +
",catchExceptions=" + catchExceptions;
return r;
}
protected boolean catchExceptions;

View File

@ -48,8 +48,32 @@ public class ItemEvent extends AWTEvent
public String paramString ()
{
return ("ItemEvent[" + item + "," + stateChange
+ ";" + super.paramString () + "]");
String r;
switch (id)
{
case ITEM_STATE_CHANGED:
r = "ITEM_STATE_CHANGED";
break;
default:
r = "unknown id";
break;
}
r += ",item=" + item + ",stateChange=";
switch (stateChange)
{
case SELECTED:
r += "SELECTED";
break;
case DESELECTED:
r += "DESELECTED";
break;
default:
r += "unknown";
break;
}
return r;
}
private Object item;

View File

@ -251,8 +251,22 @@ public class KeyEvent extends InputEvent
public String paramString ()
{
return ("KeyEvent[" + keyCode + "," + keyChar + "," + modifiers
+ ";" + super.paramString () + "]");
String r;
switch (id)
{
case KEY_PRESSED:
r = "KEY_PRESSED";
break;
case KEY_RELEASED:
r = "KEY_RELEASED";
break;
case KEY_TYPED:
r = "KEY_TYPED";
break;
}
r += ",keyCode=" + keyCode + "," + getKeyText(keyCode) + ",modifiers=" +
getKeyModifiersText(modifiers);
return r;
}
private int keyCode;

View File

@ -67,10 +67,37 @@ public class MouseEvent extends InputEvent
public String paramString ()
{
return ("MouseEvent[" + when + "," + modifiers
+ ",(" + x + "," + y + "),"
+ clickCount + "," + popupTrigger
+ ";" + super.paramString () + "]");
String r;
switch (id)
{
case MOUSE_CLICKED:
r = "MOUSE_CLICKED";
break;
case MOUSE_DRAGGED:
r = "MOUSE_DRAGGED";
break;
case MOUSE_ENTERED:
r = "MOUSE_ENTERED";
break;
case MOUSE_EXITED:
r = "MOUSE_EXITED";
break;
case MOUSE_MOVED:
r = "MOUSE_MOVED";
break;
case MOUSE_PRESSED:
r = "MOUSE_PRESSED";
break;
case MOUSE_RELEASED:
r = "MOUSE_RELEASED";
break;
default:
r = "unknown id";
break;
}
r += ",(" + x + "," + y + "),modifiers=" + modifiers + ",clickCount=" +
clickCount;
return r;
}
public void translatePoint (int x, int y)

View File

@ -36,8 +36,22 @@ public class PaintEvent extends ComponentEvent
public String paramString ()
{
return ("PaintEvent[" + updateRect
+ ";" + super.paramString () + "]");
String r;
switch (id)
{
case UPDATE:
r = "UPDATE";
break;
case PAINT:
r = "PAINT";
break;
default:
r = "unknown id";
break;
}
r += ",updateRect=" + updateRect;
return r;
}
public void setUpdateRect (Rectangle updateRect)

View File

@ -24,6 +24,6 @@ public class TextEvent extends AWTEvent
public String paramString ()
{
return super.paramString ();
return "TEXT_VALUE_CHANGED";
}
}

View File

@ -35,6 +35,31 @@ public class WindowEvent extends ComponentEvent
public String paramString ()
{
return super.paramString ();
String r;
switch (id)
{
case WINDOW_ACTIVATED:
r = "WINDOW_ACTIVATED";
break;
case WINDOW_CLOSED:
r = "WINDOW_CLOSED";
break;
case WINDOW_CLOSING:
r = "WINDOW_CLOSING";
break;
case WINDOW_DEACTIVATED:
r = "WINDOW_DEACTIVATED";
break;
case WINDOW_DEICONIFIED:
r = "WINDOW_DEICONIFIED";
break;
case WINDOW_ICONIFIED:
r = "WINDOW_ICONIFIED";
break;
case WINDOW_OPENED:
r = "WINDOW_OPENED";
break;
}
return r;
}
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface ButtonPeer extends ComponentPeer
{
void setLabel(String label);
}

View File

@ -0,0 +1,13 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface CanvasPeer extends ComponentPeer
{
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface CheckboxMenuItemPeer extends MenuItemPeer
{
void setState(boolean state);
}

View File

@ -0,0 +1,16 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface CheckboxPeer extends ComponentPeer
{
void setCheckboxGroup(java.awt.CheckboxGroup group);
void setLabel(String label);
void setState(boolean state);
}

View File

@ -0,0 +1,18 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface ChoicePeer extends ComponentPeer
{
void add(String item, int index);
void addItem(String item, int index);
void remove(int index);
void select(int index);
}

View File

@ -1,23 +1,48 @@
/* Copyright (C) 1999 Free Software Foundation
/* Copyright (C) 2000 Free Software Foundation
This file is part of libjava.
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.*;
/* A very incomplete placeholder. */
import java.awt.*;
import java.awt.image.*;
public interface ComponentPeer
{
public abstract Toolkit getToolkit ();
public Dimension getMinimumSize ();
public Dimension getPreferredSize ();
public void setBounds (int x, int y, int w, int h);
int checkImage(Image img, int width, int height, ImageObserver o);
Image createImage(ImageProducer prod);
Image createImage(int width, int height);
void disable();
void dispose();
void enable();
ColorModel getColorModel();
FontMetrics getFontMetrics(Font f);
Graphics getGraphics();
Point getLocationOnScreen();
Dimension getMinimumSize();
Dimension getPreferredSize();
Toolkit getToolkit();
void handleEvent(AWTEvent e);
void hide();
boolean isFocusTraversable();
Dimension minimumSize();
Dimension preferredSize();
void paint(Graphics graphics);
boolean prepareImage(Image img, int width, int height, ImageObserver o);
void print(Graphics graphics);
void repaint(long tm, int x, int y, int width, int height);
void requestFocus();
void reshape(int x, int y, int width, int height);
void setBackground(Color color);
void setBounds(int x, int y, int width, int height);
void setCursor(Cursor cursor);
void setEnabled(boolean enabled);
void setFont(Font font);
void setForeground(Color color);
void setVisible(boolean visible);
void show();
}

View File

@ -1,15 +1,19 @@
/* Copyright (C) 1999 Free Software Foundation
/* Copyright (C) 2000 Free Software Foundation
This file is part of libjava.
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
/* A very incomplete placeholder. */
import java.awt.Insets;
public interface ContainerPeer extends ComponentPeer
{
Insets insets();
Insets getInsets();
void beginValidate();
void endValidate();
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface DialogPeer extends WindowPeer
{
void setResizable(boolean resizeable);
void setTitle(String title);
}

View File

@ -0,0 +1,18 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.io.FilenameFilter;
public interface FileDialogPeer extends DialogPeer
{
void setDirectory(String dir);
void setFile(String file);
void setFilenameFilter(FilenameFilter filter);
}

View File

@ -0,0 +1,13 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface FontPeer
{
}

View File

@ -1,16 +1,20 @@
/* Copyright (C) 1999 Free Software Foundation
/* Copyright (C) 2000 Free Software Foundation
This file is part of libjava.
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
/* A very incomplete placeholder. */
import java.awt.Image;
import java.awt.MenuBar;
public interface FramePeer extends WindowPeer
{
void setIconImage(Image image);
void setMenuBar(MenuBar mb);
void setResizable(boolean resizable);
void setTitle(String title);
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface LabelPeer extends ComponentPeer
{
void setAlignment(int alignment);
void setText(String text);
}

View File

@ -0,0 +1,13 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface LightweightPeer extends ComponentPeer
{
}

View File

@ -0,0 +1,28 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.Dimension;
public interface ListPeer extends ComponentPeer
{
void add(String item, int index);
void addItem(String item, int index);
void clear();
void delItems(int start_index, int end_index);
void deselect(int index);
int[] getSelectedIndexes();
void makeVisible(int index);
Dimension minimumSize(int size);
Dimension preferredSize(int size);
void removeAll();
void select(int index);
void setMultipleMode(boolean multipleMode);
void setMultipleSelections(boolean multipleSelections);
}

View File

@ -0,0 +1,18 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.Menu;
public interface MenuBarPeer extends MenuComponentPeer
{
void addHelpMenu(Menu menu);
void addMenu(Menu menu);
void delMenu(int index);
}

View File

@ -0,0 +1,14 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface MenuComponentPeer
{
void dispose();
}

View File

@ -0,0 +1,17 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface MenuItemPeer extends MenuComponentPeer
{
void disable();
void enable();
void setEnabled(boolean enabled);
void setLabel(String text);
}

View File

@ -0,0 +1,18 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.MenuItem;
public interface MenuPeer extends MenuItemPeer
{
void addItem(MenuItem item);
void addSeparator();
void delItem(int index);
}

View File

@ -0,0 +1,13 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface PanelPeer extends ContainerPeer
{
}

View File

@ -0,0 +1,16 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.Event;
public interface PopupMenuPeer extends MenuPeer
{
void show(Event e);
}

View File

@ -0,0 +1,21 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.Adjustable;
public interface ScrollPanePeer extends ContainerPeer
{
void childResized(int width, int height);
int getHScrollbarHeight();
int getVScrollbarWidth();
void setScrollPosition(int x, int y);
void setUnitIncrement(Adjustable adj, int increment);
void setValue(Adjustable adj, int value);
}

View File

@ -0,0 +1,16 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface ScrollbarPeer extends ComponentPeer
{
void setLineIncrement(int increment);
void setPageIncrement(int increment);
void setValues(int value, int visible, int minimum, int maximum);
}

View File

@ -0,0 +1,23 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.Dimension;
public interface TextAreaPeer extends TextComponentPeer
{
Dimension getMinimumSize(int rows, int columns);
Dimension getPreferredSize(int rows, int columns);
void insert(String text, int pos);
void insertText(String text, int pos);
Dimension minimumSize(int rows, int cols);
Dimension preferredSize(int rows, int cols);
void replaceRange(String text, int start, int end);
void replaceText(String text, int start, int end);
}

View File

@ -0,0 +1,21 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
public interface TextComponentPeer extends ComponentPeer
{
int getCaretPosition();
int getSelectionEnd();
int getSelectionStart();
String getText();
void select(int start, int end);
void setCaretPosition(int pos);
void setEditable(boolean editable);
void setText(String text);
}

View File

@ -0,0 +1,21 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
import java.awt.Dimension;
public interface TextFieldPeer extends TextComponentPeer
{
Dimension getMinimumSize(int columns);
Dimension getPreferredSize(int columns);
Dimension minimumSize(int columns);
Dimension preferredSize(int columns);
void setEchoChar(char echo);
void setEchoCharacter(char echo);
}

View File

@ -1,15 +1,15 @@
/* Copyright (C) 1999 Free Software Foundation
/* Copyright (C) 2000 Free Software Foundation
This file is part of libjava.
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.peer;
/* A very incomplete placeholder. */
public interface WindowPeer extends ContainerPeer
{
void toBack();
void toFront();
}

View File

@ -28,6 +28,12 @@ public abstract class ResourceBundle
public ResourceBundle ()
{
}
public Locale getLocale()
{
// FIXME: Stub added for this missing method because it is needed for AWT.
return null;
}
public final String getString (String key) throws MissingResourceException
{
@ -110,9 +116,14 @@ public abstract class ResourceBundle
// Look for a properties file.
{
String prop_name = (bundleName.replace('.', '/') + ".properties");
System.out.println ("trying '" + prop_name + "' for '" + bundleName);
InputStream i = ClassLoader.getSystemResourceAsStream (prop_name);
/*
InputStream i =
ClassLoader.getSystemResourceAsStream (bundleName.replace ('.', '/')
+ ".properties");
*/
if (i != null)
{
try {