diff options
author | Bryce McKinlay <bryce@gcc.gnu.org> | 2000-08-09 14:01:44 +0100 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2000-08-09 14:01:44 +0100 |
commit | b996061366563d9caec5e0b5513316d92873d6a4 (patch) | |
tree | 6680b09725d91ed3d9ada722960071772ab26354 /libjava/java/awt/Window.java | |
parent | 7e8dad182700d23558d74de4d1461379d9ed6124 (diff) | |
download | gcc-b996061366563d9caec5e0b5513316d92873d6a4.zip gcc-b996061366563d9caec5e0b5513316d92873d6a4.tar.gz gcc-b996061366563d9caec5e0b5513316d92873d6a4.tar.bz2 |
Makefile.am: Move beans and applet classes to awt_java_source_files.
2000-08-09 Bryce McKinlay <bryce@albatross.co.nz>
* Makefile.am: Move beans and applet classes to
awt_java_source_files.
* Makefile.in: Rebuilt.
* java/awt/Color.java (getTransparency): New method.
* java/awt/Component.java: Various updates.
* java/awt/Container.java (removeNotify): Call super.removeNotify()
after dealing with children.
* java/awt/Toolkit.java (changeSupport): Renamed from pcsupport.
* java/awt/Window.java: Various new methods and updates.
* java/awt/color/ICC_Profile.java (getNumComponents): Cast profileID
to int for switch.
* java/awt/event/KeyEvent.java (paramString): Initialize `r'.
* java/awt/event/WindowEvent.java (paramString): Ditto.
* java/awt/geom/Dimension2D.java (clone): Wrap super call with
try/catch block.
* java/awt/geom/Point2D.java (clone): Ditto.
* java/awt/geom/RectangularShape.java (clone): Ditto.
* java/awt/image/ColorModel.java (bits, cspace, transparency,
hasAlpha, isAlphaPremultiplied): Make package-private, not private.
From-SVN: r35589
Diffstat (limited to 'libjava/java/awt/Window.java')
-rw-r--r-- | libjava/java/awt/Window.java | 265 |
1 files changed, 222 insertions, 43 deletions
diff --git a/libjava/java/awt/Window.java b/libjava/java/awt/Window.java index 463b67b..e8d0449 100644 --- a/libjava/java/awt/Window.java +++ b/libjava/java/awt/Window.java @@ -1,9 +1,9 @@ /* 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; @@ -11,38 +11,167 @@ import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.awt.peer.WindowPeer; import java.awt.peer.ComponentPeer; +import java.util.EventListener; import java.util.Locale; +import java.util.ResourceBundle; -/* A very incomplete placeholder. */ +/* Status: partially implemented. */ public class Window extends Container { - public Window (Frame parent) + // Serialized fields, from Sun's serialization spec. + // private FocusManager focusMgr; // FIXME: what is this? + private String warningString = null; + private int state = 0; + private int windowSerializedDataVersion = 0; // FIXME + + private transient WindowListener windowListener; + private transient GraphicsConfiguration graphicsConfiguration; + + public Window(Frame owner) + { + this (owner, null); + } + + /** @since 1.2 */ + public Window(Window owner) { - this.parent = parent; + this (owner, null); + } + + /** @since 1.3 */ + public Window(Window owner, GraphicsConfiguration gc) + { + /* FIXME: Security check + SecurityManager.checkTopLevelWindow(...) + + if (gc != null + && gc.getDevice().getType() != GraphicsDevice.TYPE_RASTER_SCREEN) + throw new IllegalArgumentException ("gc must be from a screen device"); + + if (gc == null) + graphicsConfiguration = GraphicsEnvironment.getLocalGraphicsEnvironment() + .getDefaultScreenDevice() + .getDefaultConfiguration(); + else + */ + graphicsConfiguration = gc; + // FIXME: compiler bug // this.layoutMgr = new BorderLayout (); + + if (owner == null) + throw new IllegalArgumentException ("Owner can not be null"); + + this.parent = owner; + + // FIXME: add to owner's "owned window" list } - public void addNotify () + protected void finalize() throws Throwable + { + // FIXME: remove from owner's "owned window" list (Weak References) + } + + public void addNotify() { if (peer == null) + // FIXME: This cast should NOT be required. ??? Compiler bug ??? peer = (ComponentPeer) getToolkit ().createWindow (this); - super.addNotify (); } - public synchronized void addWindowListener (WindowListener listener) + /** @specnote pack() doesn't appear to be called internally by show(), so + we duplicate some of the functionality. */ + public void pack() { - windowListener = AWTEventMulticaster.add (windowListener, listener); + if (parent != null + && !parent.isDisplayable()) + parent.addNotify(); + if (peer == null) + addNotify(); + + // FIXME: do layout stuff here + + validate(); + } + + public void show () + { + if (isVisible()) + { + this.toFront(); + return; + } + + if (parent != null + && !parent.isDisplayable()) + parent.addNotify(); + if (peer == null) + addNotify (); + + validate (); + + super.show (); + + // FIXME: Is this call neccessary or do we assume the peer takes care of + // it? + // this.toFront(); + } + + public void hide() + { + // FIXME: call hide() on amy "owned" children here. + super.hide(); + } + + public void dispose() + { + // FIXME: first call removeNotify() on owned children + for (int i = 0; i < ncomponents; ++i) + component[i].removeNotify(); + this.removeNotify(); } - public void dispose () + public void toBack () { + if (peer != null) + { + WindowPeer wp = (WindowPeer) peer; + wp.toBack (); + } } - public Component getFocusOwner () + public void toFront () { - return null; // FIXME + if (peer != null) + { + WindowPeer wp = (WindowPeer) peer; + wp.toFront (); + } + } + + public Toolkit getToolkit() + { + // FIXME: why different from Component.getToolkit() ? + return super.getToolkit(); + } + + public final String getWarningString() + { + boolean secure = true; + /* boolean secure = SecurityManager.checkTopLevelWindow(...) */ + + if (!secure) + { + if (warningString != null) + return warningString; + else + { + String warning = System.getProperty("awt.appletWarning"); + return warning; + } + } + return null; } public Locale getLocale () @@ -50,20 +179,64 @@ public class Window extends Container return locale == null ? Locale.getDefault () : locale; } - public String getWarningString () + /* + /** @since 1.2 + public InputContext getInputContext() { - return warningString; + // FIXME } + */ - public void pack () + public void setCursor(Cursor cursor) { - addNotify (); - // FIXME + // FIXME: why different from Component.setCursor() ? + super.setCursor(cursor); + } + + public Window getOwner() + { + if (parent != null) + return (Window) parent; + else + return null; } - public boolean postEvent (Event evt) + /** @since 1.2 */ + public Window[] getOwnedWindows() { - return false; // FIXME + // FIXME: return array containing all the windows this window currently + // owns. + return null; + } + + public synchronized void addWindowListener (WindowListener listener) + { + windowListener = AWTEventMulticaster.add (windowListener, listener); + } + + public synchronized void removeWindowListener (WindowListener listener) + { + windowListener = AWTEventMulticaster.remove (windowListener, listener); + } + + /** @since 1.3 */ + public EventListener[] getListeners(Class listenerType) + { + if (listenerType == WindowListener.class) + return getListenersImpl(listenerType, windowListener); + else return super.getListeners(listenerType); + } + + void dispatchEventImpl(AWTEvent e) + { + // Make use of event id's in order to avoid multiple instanceof tests. + if (e.id <= WindowEvent.WINDOW_LAST + && e.id >= WindowEvent.WINDOW_FIRST + && (windowListener != null + || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0)) + processEvent(e); + else + super.dispatchEventImpl(e); } protected void processEvent (AWTEvent evt) @@ -105,41 +278,47 @@ public class Window extends Container } } - public synchronized void removeWindowListener (WindowListener listener) + public Component getFocusOwner() { - windowListener = AWTEventMulticaster.remove (windowListener, listener); + // FIXME + return null; } - public void show () + public boolean postEvent(Event e) { - addNotify (); - validate (); - setVisible (true); - // FIXME: is there more to it? + // FIXME + return false; } - public void toBack () + public boolean isShowing() { - if (peer != null) - { - WindowPeer wp = (WindowPeer) peer; - wp.toBack (); - } + // FIXME: Also check if window is within the boundary of the screen? + return isVisible(); } - public void toFront () + /** @since 1.2 */ + public void applyResourceBundle(ResourceBundle rb) { - if (peer != null) - { - WindowPeer wp = (WindowPeer) peer; - wp.toFront (); - } + // FIXME } - // Serialized fields, from Sun's serialization spec. - // private FocusManager focusMgr; // FIXME: what is this? - private int state; - private String warningString; + /** @since 1.2 */ + public void applyResourceBundle(String rbName) + { + ResourceBundle rb = ResourceBundle.getBundle(rbName); + if (rb != null) + applyResourceBundle(rb); + } - private transient WindowListener windowListener; + /* + public AccessibleContext getAccessibleContext() + { + // FIXME + } + */ + + public GraphicsConfiguration getGraphicsConfiguration() + { + return graphicsConfiguration; + } } |