? java/util/LocaleData.java
? lib/classes.locale
? scripts/classpath.spec
Index: gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,v
retrieving revision 1.3
diff -u -r1.3 GdkScreenGraphicsDevice.java
--- gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java 16 Feb 2005 13:59:03 -0000 1.3
+++ gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java 5 Apr 2005 14:08:09 -0000
@@ -38,6 +38,8 @@
package gnu.java.awt.peer.gtk;
+import java.awt.Dimension;
+import java.awt.DisplayMode;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
@@ -79,4 +81,35 @@
// FIXME: query X for default configuration
return new GdkGraphicsConfiguration(this);
}
+
+
+ /**
+ * Returns the current display mode of this device, or null if unknown.
+ *
+ * @return the current display mode
+ * @see #setDisplayMode(DisplayMode)
+ * @see #getDisplayModes()
+ * @since 1.4
+ */
+ public DisplayMode getDisplayMode()
+ {
+ // determine display mode
+ Dimension dim = getToolkit().getScreenSize();
+ DisplayMode mode = new DisplayMode(dim.width, dim.height, 0,
+ DisplayMode.REFRESH_RATE_UNKNOWN);
+ return mode;
+ }
+
+ /**
+ * This device does not yet support fullscreen exclusive mode, so this
+ * returns false
.
+ *
+ * @return false
+ * @since 1.4
+ */
+ public boolean isFullScreenSupported()
+ {
+ return false;
+ }
+
}
Index: java/awt/GraphicsDevice.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/GraphicsDevice.java,v
retrieving revision 1.2
diff -u -r1.2 GraphicsDevice.java
--- java/awt/GraphicsDevice.java 16 Feb 2005 10:39:26 -0000 1.2
+++ java/awt/GraphicsDevice.java 5 Apr 2005 14:08:12 -0000
@@ -64,6 +64,12 @@
/** The current full-screen window, or null if there is none. */
private Window full_screen;
+ /**
+ * The bounds of the fullscreen window before it has been switched to full
+ * screen.
+ */
+ private Rectangle fullScreenOldBounds;
+
/** The current display mode, or null if unknown. */
private DisplayMode mode;
@@ -151,9 +157,9 @@
*
* If isFullScreenSupported()
returns false, full-screen
* exclusive mode is simulated by resizing the window to the size of the
- * screen and positioning it at (0,0).
- *
- * XXX Not yet implemented in Classpath.
+ * screen and positioning it at (0,0). This is also what this method does.
+ * If a device supports real fullscreen mode then it should override this
+ * method as well as #isFullScreenSupported and #getFullScreenWindow.
*
* @param w the window to toggle
* @see #isFullScreenSupported()
@@ -164,11 +170,24 @@
*/
public synchronized void setFullScreenWindow(Window w)
{
+ // Restore the previous window to normal mode and release the reference.
if (full_screen != null)
- ; // XXX Restore the previous window to normal mode.
- full_screen = w;
- // XXX If w != null, make it full-screen.
- throw new Error("not implemented");
+ {
+ full_screen.setBounds(fullScreenOldBounds);
+ }
+
+ full_screen = null;
+
+ // If w != null, make it full-screen.
+ if (w != null)
+ {
+ fullScreenOldBounds = w.getBounds();
+ full_screen = w;
+ DisplayMode dMode = getDisplayMode();
+ full_screen.setBounds(0, 0, dMode.getWidth(), dMode.getHeight());
+ full_screen.requestFocus();
+ full_screen.setLocationRelativeTo(null);
+ }
}
/**