Frames | No Frames |
1: /* DisplayMode.java -- a description of display mode configurations 2: Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: 39: package java.awt; 40: 41: /** 42: * This encapsulates information about the display mode for a graphics 43: * device configuration. They are device dependent, and may not always be 44: * available. 45: * 46: * @author Eric Blake (ebb9@email.byu.edu) 47: * @see GraphicsDevice 48: * @since 1.4 49: * @status updated to 1.4 50: */ 51: public final class DisplayMode 52: { 53: /** 54: * Value of the bit depth if multiple depths are supported. 55: * 56: * @see #getBitDepth() 57: */ 58: public static final int BIT_DEPTH_MULTI = -1; 59: 60: /** 61: * Value of an unknown refresh rate. 62: * 63: * @see #getRefreshRate() 64: */ 65: public static final int REFRESH_RATE_UNKNOWN = 0; 66: 67: /** The width. */ 68: private final int width; 69: 70: /** The height. */ 71: private final int height; 72: 73: /** The bit depth. */ 74: private final int bitDepth; 75: 76: /** The refresh rate. */ 77: private final int refreshRate; 78: 79: /** 80: * Create a mode with the given parameters. 81: * 82: * @param width the width 83: * @param height the height 84: * @param bitDepth the bitDepth 85: * @param refreshRate the refreshRate 86: * @see #BIT_DEPTH_MULTI 87: * @see #REFRESH_RATE_UNKNOWN 88: */ 89: public DisplayMode(int width, int height, int bitDepth, int refreshRate) 90: { 91: this.width = width; 92: this.height = height; 93: this.bitDepth = bitDepth; 94: this.refreshRate = refreshRate; 95: } 96: 97: /** 98: * Returns the height, in pixels. 99: * 100: * @return the height 101: */ 102: public int getHeight() 103: { 104: return height; 105: } 106: 107: /** 108: * Returns the width, in pixels. 109: * 110: * @return the width 111: */ 112: public int getWidth() 113: { 114: return width; 115: } 116: 117: /** 118: * Returns the bit depth, in bits per pixel. This may be BIT_DEPTH_MULTI. 119: * 120: * @return the bit depth 121: * @see #BIT_DEPTH_MULTI 122: */ 123: public int getBitDepth() 124: { 125: return bitDepth; 126: } 127: 128: /** 129: * Returns the refresh rate, in hertz. This may be REFRESH_RATE_UNKNOWN. 130: * 131: * @return the refresh rate 132: * @see #REFRESH_RATE_UNKNOWN 133: */ 134: public int getRefreshRate() 135: { 136: return refreshRate; 137: } 138: 139: /** 140: * Test for equality. This returns true for two modes with identical 141: * parameters. 142: * 143: * @param dm The display mode to compare to 144: * 145: * @return true if it is equal 146: */ 147: public boolean equals (DisplayMode dm) 148: { 149: return (width == dm.width 150: && height == dm.height 151: && bitDepth == dm.bitDepth 152: && refreshRate == dm.refreshRate); 153: } 154: 155: /** 156: * Returns a hash code for the display mode. 157: * 158: * @return the hash code 159: */ 160: public int hashCode() 161: { 162: return width + height + bitDepth + refreshRate; 163: } 164: } // class DisplayMode