import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javaforce.*;
/** Entry point for jphonelite application. */
public class PhoneApp extends JFrame implements WindowListener, WindowController {
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new PhoneApp().setVisible(true);
}
});
}
private PhonePanel panel;
private PhoneApp() {
if (!BasePhone.lockFile()) {
JF.showError("Error", "Another instance of jPhoneLite is already running!");
System.exit(0);
}
panel = new PhonePanel(this, false);
addWindowListener(this);
setResizable(false);
setContentPane(panel);
pack();
setTitle("jPhoneLite/" + PhonePanel.version);
JFImage icon = new JFImage();
icon.loadPNG(this.getClass().getClassLoader().getResourceAsStream("jphonelite.png"));
setIconImage(icon.getImage());
setPosition();
}
//interface WindowListener
public void windowOpened(WindowEvent e) { }
public void windowClosing(WindowEvent e) {
if (Settings.current.exitWhenClosed) {
panel.unRegisterAll();
Settings.saveSettings();
BasePhone.unlockFile();
System.exit(0);
}
}
public void windowClosed(WindowEvent e) { }
public void windowIconified(WindowEvent e) {
if (Settings.current.hideWhenMinimized) {
setVisible(false);
}
}
public void windowDeiconified(WindowEvent e) { }
public void windowActivated(WindowEvent e) {
panel.active = true;
}
public void windowDeactivated(WindowEvent e) {
panel.active = false;
}
//interface WindowController
public void setPanelSize() {
pack();
}
public void setPanelVisible() {
setVisible(true);
setExtendedState(NORMAL);
}
public void setPanelAlwaysOnTop(boolean state) {
setAlwaysOnTop(state);
}
public void startFlash() {}
public void stopFlash() {}
public void setPosition() {
Dimension d = getPreferredSize();
Rectangle s = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
setLocation(s.width/2 - d.width/2, s.height/2 - d.height/2);
}
}