8b8dcd77f55ab23e56fc644bf93b2ff7555c457c
[org.ibex.core.git] / src / org / ibex / plat / Java4.java
1 // Copyright 2004 Adam Megacz, see the COPYING file for licensing [GPL]
2 package org.ibex.plat;
3
4 import java.awt.*;
5 import java.awt.event.*;
6 import java.awt.image.*;
7 import java.awt.geom.*;
8 import java.net.*;
9 import java.util.*;
10 import org.ibex.util.*;
11 import java.lang.reflect.*;
12 import org.ibex.graphics.*;
13 import org.ibex.core.*;
14 import org.ibex.net.*;
15
16 /** Platform class for Java 1.4 AWT implementations */
17 public class Java4 extends Java2 {
18     protected String getDescriptiveName() { return "Java 1.4+ JVM"; }
19     public Java4() {
20         java.awt.Toolkit.getDefaultToolkit().setDynamicLayout(true);
21         /*
22         // Properties for Apple JDK 1.4
23         System.setProperty("apple.awt.showGrowBox", "false");
24         System.setProperty("apple.awt.graphics.EnableLazyDrawing", "40");
25         System.setProperty("apple.awt.graphics.EnableLazyDrawing", "true");
26         System.setProperty("apple.awt.window.position.forceSafeUserPositioning", "true");
27         System.setProperty("apple.awt.window.position.forceSafeCreation", "true");
28         */
29     }
30     protected Surface __createSurface(final Box root, final boolean framed) { return new Java4Surface(root, framed); }
31     public static class Java4Surface extends Java2Surface implements WindowStateListener, MouseWheelListener {
32         public Java4Surface(Box root, boolean framed) {
33             super(root, true);
34             // JDK1.4 doesn't like java.lang.Window's...
35             if (!framed) ((Frame)window).setUndecorated(true);
36             window.addWindowStateListener(this);
37             window.addMouseWheelListener(this);
38             window.setVisible(true);
39         }
40         protected void makeVisible() { }
41         protected void _setMaximized(boolean m) {
42             if (frame == null) Log.info(this, "JDK 1.4 can only maximize frames, not windows");
43             else frame.setExtendedState(m ? Frame.MAXIMIZED_BOTH : (minimized ? Frame.ICONIFIED : Frame.NORMAL));
44         }
45         protected void _setMinimized(boolean m) {
46             if (frame == null) Log.info(this, "JDK 1.4 can only minimize frames, not windows");
47             else frame.setExtendedState(m ? Frame.ICONIFIED : (maximized ? Frame.MAXIMIZED_BOTH : Frame.NORMAL));
48         }
49         public void windowStateChanged(WindowEvent e) {
50             if (e.getOldState() == e.getNewState()) return;
51             if ((e.getNewState() & Frame.MAXIMIZED_BOTH) != 0) Maximized(true);
52             else if (((e.getOldState() & Frame.MAXIMIZED_BOTH) != 0) && (e.getNewState() & Frame.MAXIMIZED_BOTH) == 0)
53                 Maximized(false);
54         }
55         public void mouseWheelMoved(MouseWheelEvent m) {
56             if (m.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) VScroll(m.getUnitsToScroll()); }
57     }
58 }