/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @author Alexey A. Petrenko * @version $Revision$ */ package java.awt; import org.apache.harmony.awt.internal.nls.Messages; /** * The GraphicsDevice class describes the graphics devices (such as screens or * printers) which are available in a particular graphics environment. Many * GraphicsDevice instances can be associated with a single GraphicsEnvironment. * Each GraphicsDevice has one or more GraphicsConfiguration objects which * specify the different configurations and modes of GraphicsDevice. * * @since Android 1.0 */ public abstract class GraphicsDevice { /** * The display mode. */ private DisplayMode displayMode; // ???AWT // private Window fullScreenWindow = null; /** * The Constant TYPE_IMAGE_BUFFER indicates a image buffer device. */ public static final int TYPE_IMAGE_BUFFER = 2; /** * The Constant TYPE_PRINTER indicates a printer device. */ public static final int TYPE_PRINTER = 1; /** * The Constant TYPE_RASTER_SCREEN indicates a raster screen device. */ public static final int TYPE_RASTER_SCREEN = 0; /** * Constructor is not to be used directly as this class is abstract. */ protected GraphicsDevice() { displayMode = new DisplayMode(0, 0, DisplayMode.BIT_DEPTH_MULTI, DisplayMode.REFRESH_RATE_UNKNOWN); } /** * Returns an array of GraphicsConfiguration objects associated with the * GraphicsDevice. * * @return an array of GraphicsConfiguration objects associated with the * GraphicsDevice. */ public abstract GraphicsConfiguration[] getConfigurations(); /** * Gets the default configuration for the GraphicsDevice. * * @return the default GraphicsConfiguration object for the GraphicsDevice. */ public abstract GraphicsConfiguration getDefaultConfiguration(); /** * Gets the String identifier which associated with the GraphicsDevice in * the GraphicsEnvironment. * * @return the String identifier of the GraphicsDevice in the * GraphicsEnvironment. */ public abstract String getIDstring(); /** * Gets the type of this GraphicsDevice: TYPE_IMAGE_BUFFER, TYPE_PRINTER or * TYPE_RASTER_SCREEN. * * @return the type of this GraphicsDevice: TYPE_IMAGE_BUFFER, TYPE_PRINTER * or TYPE_RASTER_SCREEN. */ public abstract int getType(); /** * Returns the number of bytes available in accelerated memory on this * device. * * @return the number of bytes available accelerated memory. */ public int getAvailableAcceleratedMemory() { return 0; } /* * ???AWT public GraphicsConfiguration * getBestConfiguration(GraphicsConfigTemplate gct) { return * gct.getBestConfiguration(getConfigurations()); } */ /** * Gets the current display mode of the GraphicsDevice. * * @return the current display mode of the GraphicsDevice. */ public DisplayMode getDisplayMode() { return displayMode; } /** * Gets an array of display modes available in this GraphicsDevice. * * @return an array of display modes available in this GraphicsDevice. */ public DisplayMode[] getDisplayModes() { DisplayMode[] dms = { displayMode }; return dms; } /* * ???AWT public Window getFullScreenWindow() { return fullScreenWindow; } */ /** * Returns true if this GraphicsDevice supports low-level display changes. * * @return true, if this GraphicsDevice supports low-level display changes; * false otherwise. */ public boolean isDisplayChangeSupported() { return false; } /** * Returns true if this GraphicsDevice supports full screen mode. * * @return true, if this GraphicsDevice supports full screen mode, false * otherwise. */ public boolean isFullScreenSupported() { return false; } // an array of display modes available in this GraphicsDevice. /** * Sets the display mode of this GraphicsDevice. * * @param dm * the new display mode of this GraphicsDevice. */ public void setDisplayMode(DisplayMode dm) { if (!isDisplayChangeSupported()) { // awt.122=Does not support display mode changes throw new UnsupportedOperationException(Messages.getString("awt.122")); //$NON-NLS-1$ } DisplayMode[] dms = getDisplayModes(); for (DisplayMode element : dms) { if (element.equals(dm)) { displayMode = dm; return; } } // awt.123=Unsupported display mode: {0} throw new IllegalArgumentException(Messages.getString("awt.123", dm)); //$NON-NLS-1$ } /* * ???AWT public void setFullScreenWindow(Window w) { if (w == null) { * fullScreenWindow = null; return; } fullScreenWindow = w; if * (isFullScreenSupported()) { w.enableInputMethods(false); } else { * w.setSize(displayMode.getWidth(), displayMode.getHeight()); * w.setLocation(0, 0); } w.setVisible(true); w.setAlwaysOnTop(true); } */ }