| /* Copyright (C) 1999, 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; | |
| import java.awt.peer.FramePeer; | |
| /* A very incomplete placeholder. */ | |
| public class Frame extends Window implements MenuContainer | |
| { | |
| public static final int NORMAL = 0; | |
| public static final int ICONIFIED = 1; | |
| MenuBar menuBar = null; | |
| String title; | |
| private transient Image iconImage; | |
| private transient boolean isResizable = true; | |
| private transient int state = NORMAL; | |
| public Frame () | |
| { | |
| super(); | |
| } | |
| public Frame(GraphicsConfiguration gc) | |
| { | |
| super(gc); | |
| } | |
| public Frame (String title) | |
| { | |
| super(); | |
| setTitle(title); | |
| } | |
| public Frame(String title, GraphicsConfiguration gc) | |
| { | |
| super(gc); | |
| setTitle(title); | |
| } | |
| public String getTitle() | |
| { | |
| return (title != null) ? title : ""; | |
| } | |
| public void setTitle (String title) | |
| { | |
| this.title = title; | |
| if (peer != null) | |
| ((FramePeer)peer).setTitle(title); | |
| } | |
| public Image getIconImage() | |
| { | |
| return iconImage; | |
| } | |
| public void setIconImage(Image image) | |
| { | |
| iconImage = image; | |
| if (peer != null) | |
| ((FramePeer) peer).setIconImage(iconImage); | |
| } | |
| protected void finalize() throws Throwable | |
| { | |
| //frames.remove(this); | |
| /* FIXME: This won't work. Finalize will never be called if frames | |
| has a reference to the object. We need weak references to | |
| implement this correctly. */ | |
| super.finalize(); | |
| } | |
| public synchronized void setMenuBar (MenuBar menuBar) | |
| { | |
| if (this.menuBar != menuBar) | |
| { | |
| //this.menuBar.removeNotify(); | |
| this.menuBar = menuBar; | |
| //this.menuBar.addNotify(); | |
| } | |
| if (peer != null) | |
| ((FramePeer) peer).setMenuBar(menuBar); | |
| } | |
| public boolean isResizable() | |
| { | |
| return isResizable; | |
| } | |
| public void setResizable(boolean resizable) | |
| { | |
| isResizable = resizable; | |
| if (peer != null) | |
| ((FramePeer) peer).setResizable(isResizable); | |
| } | |
| public int getState() | |
| { | |
| /* FIXME: State might have changed in the peer... Must check. */ | |
| return state; | |
| } | |
| public synchronized void addNotify () | |
| { | |
| if (peer == null) | |
| peer = getToolkit ().createFrame (this); | |
| super.addNotify(); | |
| } | |
| public boolean postEvent(Event evt) { return false; } // FIXME | |
| public void remove(MenuComponent m) | |
| { | |
| if (m == menuBar) | |
| { | |
| setMenuBar(null); | |
| return; | |
| } | |
| super.remove(m); | |
| } | |
| public void removeNotify() | |
| { | |
| //if ((peer != null) && (menuBar != null)) menuBar.removeNotify(); | |
| super.removeNotify(); | |
| } | |
| public static Frame[] getFrames() | |
| { | |
| //Frame[] array = new Frames[frames.size()]; | |
| //return frames.toArray(array); | |
| // see finalize() comment | |
| String msg = "FIXME: can't be implemented without weak references"; | |
| throw new UnsupportedOperationException(msg); | |
| } | |
| } |