package bmsi.fsp; import java.awt.*; import java.awt.peer.*; import java.awt.event.WindowEvent; class FSFrame extends FSFramedWindow implements FramePeer { final static int ICONIFIED = 0; final static int NORMAL = 1; private int state = NORMAL; private MenuBar menu; FSFrame(Frame f,FSToolkit toolkit) { super(f,toolkit); } protected void initialize() { Frame frame = (Frame)target; String title = frame.getTitle(); if (title != null) setTitle(title); if (!frame.isResizable()) setResizable(false); MenuBar menu = frame.getMenuBar(); if (menu != null) { if (menu.getPeer() == null) menu.addNotify(); setMenuBar(menu); } super.initialize(); } /** While most text terminals support icons via font download, we have no time for such foolishness :-) */ public void setIconImage(Image img) { } public void setMenuBar(MenuBar mnu) { menu = mnu; } public void postKey(int k) { if (k == TI.KEY_OPTIONS + 256) { toolkit.setFocus((Focus)menu.getPeer()); return; } super.postKey(k); } public void activate() { setState(NORMAL); super.activate(); } // Java 2 stuff, but used internally in JDK 1.1 also public int getState() { return state; } public void setState(int i) { i &= 1; if (i != state) { state = i; if (state == ICONIFIED) { setVisible(false); deactivate(); toolkit.theQueue.postEvent( new WindowEvent((Window)target,WindowEvent.WINDOW_ICONIFIED)); } else { setVisible(true); toolkit.theQueue.postEvent( new WindowEvent((Window)target,WindowEvent.WINDOW_DEICONIFIED)); super.activate(); } } } }