package ij.plugin.frame; import java.awt.*; import java.awt.event.*; import ij.*; import ij.plugin.*; /** This is a closeable window that plugins can extend. */ public class PlugInFrame extends Frame implements PlugIn, WindowListener, FocusListener { String title; public PlugInFrame(String title) { super(title); enableEvents(AWTEvent.WINDOW_EVENT_MASK); this.title = title; ImageJ ij = IJ.getInstance(); addWindowListener(this); addFocusListener(this); if (IJ.isLinux()) setBackground(ImageJ.backgroundColor); if (ij!=null) { Image img = ij.getIconImage(); if (img!=null) try {setIconImage(img);} catch (Exception e) {} } } public void run(String arg) { } public void windowClosing(WindowEvent e) { if (e.getSource()==this) { close(); if (Recorder.record) Recorder.record("run", "Close"); } } /** Closes this window. */ public void close() { //setVisible(false); dispose(); WindowManager.removeWindow(this); } public void windowActivated(WindowEvent e) { if (IJ.isMacintosh() && IJ.getInstance()!=null) { IJ.wait(10); // may be needed for Java 1.4 on OS X setMenuBar(Menus.getMenuBar()); } WindowManager.setWindow(this); } public void focusGained(FocusEvent e) { //IJ.log("PlugInFrame: focusGained"); WindowManager.setWindow(this); } public void windowOpened(WindowEvent e) {} public void windowClosed(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void focusLost(FocusEvent e) {} }