package bmsi.fsp; import java.awt.Window; import java.awt.Graphics; import java.awt.Font; import java.awt.Component; import java.awt.AWTError; import java.awt.Point; import java.awt.event.KeyEvent; import java.awt.event.WindowEvent; import java.awt.peer.WindowPeer; import java.io.IOException; class FSWindow extends FSContainer implements WindowPeer { FSWindow(Window w,FSToolkit toolkit) { super(w,toolkit); toolkit.theQueue.postEvent( new WindowEvent((Window)target,WindowEvent.WINDOW_OPENED)); } /** Top level windows must set the default Font. */ protected void initialize() { Font f = target.getFont(); if (f == null) { f = new Font(toolkit.getFontList()[0],0,10); target.setFont(f); } super.initialize(); } public void setBounds(int x,int y,int w,int h) { super.setBounds(x,y,w,h); toolkit.syncit.queue(); } public void toFront() { super.toFront(); toolkit.setActive(this); toolkit.syncit.queue(); } void activate() { Window w = (Window)target; Component c = w.getFocusOwner(); if (c != null) toolkit.setFocus((Focus)c.getPeer()); else toolkit.setFocus(this); } void deactivate() { } public int handleFocusTraversalEvent(KeyEvent e) { // FIXME: in Java 2, this method can control keyboard focus return 0; } public void setVisible(boolean f) { boolean o = isVisible(); if (f != o) { super.setVisible(f); if (f) toFront(); } } public Point getLocationOnScreen() { return target.getLocation(); } }