Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)
Frames | No Frames

Source for java.awt.Cursor

 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:  private static String[] NAMES = { "Default Cursor", "Crosshair Cursor",
 120:  "Text Cursor", "Wait Cursor",
 121:  "Southwest Resize Cursor",
 122:  "Southeast Resize Cursor",
 123:  "Northwest Resize Cursor",
 124:  "Northeast Resize Cursor",
 125:  "North Resize Cursor", "South Resize Cursor",
 126:  "West Resize Cursor", "East Resize Cursor",
 127:  "Hand Cursor", "Move Cursor" };
 128:  
 129:  public static final int CUSTOM_CURSOR = 0xFFFFFFFF;
 130: 
 131:  private static final int PREDEFINED_COUNT = 14;
 132: 
 133:  protected static Cursor[] predefined = new Cursor[PREDEFINED_COUNT];
 134:  protected String name;
 135: 
 136:  /**
 137:  * @serial The numeric id of this cursor.
 138:  */
 139:  int type;
 140: 
 141:  /**
 142:  * Initializes a new instance of <code>Cursor</code> with the specified
 143:  * type.
 144:  *
 145:  * @param type The cursor type.
 146:  *
 147:  * @exception IllegalArgumentException If the specified cursor type is invalid
 148:  */
 149:  public Cursor(int type)
 150:  {
 151:  if (type < 0 || type >= PREDEFINED_COUNT)
 152:  throw new IllegalArgumentException ("invalid cursor " + type);
 153: 
 154:  this.type = type;
 155: 
 156:  name = NAMES[type];
 157:  
 158:  // FIXME: lookup?
 159:  }
 160: 
 161:  /** This constructor is used internally only. 
 162:  * Application code should call Toolkit.createCustomCursor().
 163:  */
 164:  protected Cursor(String name)
 165:  {
 166:  this.name = name;
 167:  this.type = CUSTOM_CURSOR;
 168:  }
 169: 
 170:  /**
 171:  * Returns an instance of <code>Cursor</code> for one of the specified
 172:  * predetermined types.
 173:  *
 174:  * @param type The type contant from this class.
 175:  *
 176:  * @return The requested predefined cursor.
 177:  *
 178:  * @exception IllegalArgumentException If the constant is not one of the
 179:  * predefined cursor type constants from this class.
 180:  */
 181:  public static Cursor getPredefinedCursor(int type)
 182:  {
 183:  if (type < 0 || type >= PREDEFINED_COUNT)
 184:  throw new IllegalArgumentException ("invalid cursor " + type);
 185:  if (predefined[type] == null)
 186:  predefined[type] = new Cursor(type);
 187:  return predefined[type];
 188:  }
 189: 
 190:  /**
 191:  * Retrieves the system specific custom Cursor named Cursor names are,
 192:  * for example: "Invalid.16x16".
 193:  *
 194:  * @exception AWTException
 195:  * @exception HeadlessException If GraphicsEnvironment.isHeadless()
 196:  * returns true.
 197:  */
 198:  public static Cursor getSystemCustomCursor(String name)
 199:  throws AWTException
 200:  {
 201:  if (GraphicsEnvironment.isHeadless())
 202:  throw new HeadlessException ();
 203: 
 204:  // FIXME
 205:  return null;
 206:  }
 207: 
 208:  /**
 209:  * Returns an instance of the system default cursor type.
 210:  *
 211:  * @return The system default cursor.
 212:  */
 213:  public static Cursor getDefaultCursor()
 214:  {
 215:  return getPredefinedCursor(DEFAULT_CURSOR);
 216:  }
 217: 
 218:  /**
 219:  * Returns the numeric type identifier for this cursor.
 220:  *
 221:  * @return The cursor id.
 222:  */
 223:  public int getType()
 224:  {
 225:  return type;
 226:  }
 227: 
 228:  public String getName()
 229:  {
 230:  return name;
 231:  }
 232: 
 233:  public String toString()
 234:  {
 235:  return (this.getClass()
 236:  + "[type=" + getType()
 237:  + ",name=" + getName() + "]");
 238:  }
 239: }
Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)

AltStyle によって変換されたページ (->オリジナル) /