GNU Classpath (0.20) | |
Frames | No Frames |
1: /* Copyright (C) 1999, 2000, 2002 Free Software Foundation 2: 3: This file is part of GNU Classpath. 4: 5: GNU Classpath is free software; you can redistribute it and/or modify 6: it under the terms of the GNU General Public License as published by 7: the Free Software Foundation; either version 2, or (at your option) 8: any later version. 9: 10: GNU Classpath is distributed in the hope that it will be useful, but 11: WITHOUT ANY WARRANTY; without even the implied warranty of 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13: General Public License for more details. 14: 15: You should have received a copy of the GNU General Public License 16: along with GNU Classpath; see the file COPYING. If not, write to the 17: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 18: 02110-1301 USA. 19: 20: Linking this library statically or dynamically with other modules is 21: making a combined work based on this library. Thus, the terms and 22: conditions of the GNU General Public License cover the whole 23: combination. 24: 25: As a special exception, the copyright holders of this library give you 26: permission to link this library with independent modules to produce an 27: executable, regardless of the license terms of these independent 28: modules, and to copy and distribute the resulting executable under 29: terms of your choice, provided that you also meet, for each linked 30: independent module, the terms and conditions of the license of that 31: module. An independent module is a module which is not derived from 32: or based on this library. If you modify this library, you may extend 33: this exception to your version of the library, but you are not 34: obligated to do so. If you do not wish to do so, delete this 35: exception statement from your version. */ 36: 37: 38: package java.awt; 39: 40: /** 41: * This class represents various predefined cursor types. 42: * 43: * @author Aaron M. Renn (arenn@urbanophile.com) 44: */ 45: public class Cursor implements java.io.Serializable 46: { 47: static final long serialVersionUID = 8028237497568985504L; 48: 49: /** 50: * Constant for the system default cursor type 51: */ 52: public static final int DEFAULT_CURSOR = 0; 53: 54: /** 55: * Constant for a cross-hair cursor. 56: */ 57: public static final int CROSSHAIR_CURSOR = 1; 58: 59: /** 60: * Constant for a cursor over a text field. 61: */ 62: public static final int TEXT_CURSOR = 2; 63: 64: /** 65: * Constant for a cursor to display while waiting for an action to complete. 66: */ 67: public static final int WAIT_CURSOR = 3; 68: 69: /** 70: * Cursor used over SW corner of window decorations. 71: */ 72: public static final int SW_RESIZE_CURSOR = 4; 73: 74: /** 75: * Cursor used over SE corner of window decorations. 76: */ 77: public static final int SE_RESIZE_CURSOR = 5; 78: 79: /** 80: * Cursor used over NW corner of window decorations. 81: */ 82: public static final int NW_RESIZE_CURSOR = 6; 83: 84: /** 85: * Cursor used over NE corner of window decorations. 86: */ 87: public static final int NE_RESIZE_CURSOR = 7; 88: 89: /** 90: * Cursor used over N edge of window decorations. 91: */ 92: public static final int N_RESIZE_CURSOR = 8; 93: 94: /** 95: * Cursor used over S edge of window decorations. 96: */ 97: public static final int S_RESIZE_CURSOR = 9; 98: 99: /** 100: * Cursor used over W edge of window decorations. 101: */ 102: public static final int W_RESIZE_CURSOR = 10; 103: 104: /** 105: * Cursor used over E edge of window decorations. 106: */ 107: public static final int E_RESIZE_CURSOR = 11; 108: 109: /** 110: * Constant for a hand cursor. 111: */ 112: public static final int HAND_CURSOR = 12; 113: 114: /** 115: * Constant for a cursor used during window move operations. 116: */ 117: public static final int MOVE_CURSOR = 13; 118: 119: public static final int CUSTOM_CURSOR = 0xFFFFFFFF; 120: 121: private static final int PREDEFINED_COUNT = 14; 122: 123: protected static Cursor[] predefined = new Cursor[PREDEFINED_COUNT]; 124: protected String name; 125: 126: /** 127: * @serial The numeric id of this cursor. 128: */ 129: int type; 130: 131: /** 132: * Initializes a new instance of <code>Cursor</code> with the specified 133: * type. 134: * 135: * @param type The cursor type. 136: * 137: * @exception IllegalArgumentException If the specified cursor type is invalid 138: */ 139: public Cursor(int type) 140: { 141: if (type < 0 || type >= PREDEFINED_COUNT) 142: throw new IllegalArgumentException ("invalid cursor " + type); 143: 144: this.type = type; 145: // FIXME: lookup and set name? 146: } 147: 148: /** This constructor is used internally only. 149: * Application code should call Toolkit.createCustomCursor(). 150: */ 151: protected Cursor(String name) 152: { 153: this.name = name; 154: this.type = CUSTOM_CURSOR; 155: } 156: 157: /** 158: * Returns an instance of <code>Cursor</code> for one of the specified 159: * predetermined types. 160: * 161: * @param type The type contant from this class. 162: * 163: * @return The requested predefined cursor. 164: * 165: * @exception IllegalArgumentException If the constant is not one of the 166: * predefined cursor type constants from this class. 167: */ 168: public static Cursor getPredefinedCursor(int type) 169: { 170: if (type < 0 || type >= PREDEFINED_COUNT) 171: throw new IllegalArgumentException ("invalid cursor " + type); 172: if (predefined[type] == null) 173: predefined[type] = new Cursor(type); 174: return predefined[type]; 175: } 176: 177: /** 178: * Retrieves the system specific custom Cursor named Cursor names are, 179: * for example: "Invalid.16x16". 180: * 181: * @exception AWTException 182: * @exception HeadlessException If GraphicsEnvironment.isHeadless() 183: * returns true. 184: */ 185: public static Cursor getSystemCustomCursor(String name) 186: throws AWTException 187: { 188: if (GraphicsEnvironment.isHeadless()) 189: throw new HeadlessException (); 190: 191: // FIXME 192: return null; 193: } 194: 195: /** 196: * Returns an instance of the system default cursor type. 197: * 198: * @return The system default cursor. 199: */ 200: public static Cursor getDefaultCursor() 201: { 202: return getPredefinedCursor(DEFAULT_CURSOR); 203: } 204: 205: /** 206: * Returns the numeric type identifier for this cursor. 207: * 208: * @return The cursor id. 209: */ 210: public int getType() 211: { 212: return type; 213: } 214: 215: public String getName() 216: { 217: return name; 218: } 219: 220: public String toString() 221: { 222: return (this.getClass() + "[" + getName() + "]"); 223: } 224: }
GNU Classpath (0.20) |