001: /*
002: * @(#)Cursor.java 1.17 06/10/10
003: *
004: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: *
026: */
027: package java.awt;
028:
029: /**
030: * A class to encapsulate the bitmap representation of the mouse cursor.
031: *
032: * @see Component#setCursor
033: * @version 1.12, 08/19/02
034: * @author Amy Fowler
035: */
036: public class Cursor implements java.io.Serializable {
037: /**
038: * The default cursor type (gets set if no cursor is defined).
039: */
040: public static final int DEFAULT_CURSOR = 0;
041: /**
042: * The crosshair cursor type.
043: */
044: public static final int CROSSHAIR_CURSOR = 1;
045: /**
046: * The text cursor type.
047: */
048: public static final int TEXT_CURSOR = 2;
049: /**
050: * The wait cursor type.
051: */
052: public static final int WAIT_CURSOR = 3;
053: /**
054: * The south-west-resize cursor type.
055: */
056: public static final int SW_RESIZE_CURSOR = 4;
057: /**
058: * The south-east-resize cursor type.
059: */
060: public static final int SE_RESIZE_CURSOR = 5;
061: /**
062: * The north-west-resize cursor type.
063: */
064: public static final int NW_RESIZE_CURSOR = 6;
065: /**
066: * The north-east-resize cursor type.
067: */
068: public static final int NE_RESIZE_CURSOR = 7;
069: /**
070: * The north-resize cursor type.
071: */
072: public static final int N_RESIZE_CURSOR = 8;
073: /**
074: * The south-resize cursor type.
075: */
076: public static final int S_RESIZE_CURSOR = 9;
077: /**
078: * The west-resize cursor type.
079: */
080: public static final int W_RESIZE_CURSOR = 10;
081: /**
082: * The east-resize cursor type.
083: */
084: public static final int E_RESIZE_CURSOR = 11;
085: /**
086: * The hand cursor type.
087: */
088: public static final int HAND_CURSOR = 12;
089: /**
090: * The move cursor type.
091: */
092: public static final int MOVE_CURSOR = 13;
093:
094: protected static Cursor predefined[] = new Cursor[14];
095: int type = DEFAULT_CURSOR;
096: /*
097: * JDK 1.1 serialVersionUID
098: */
099: private static final long serialVersionUID = 8028237497568985504L;
100:
101: /**
102: * Returns a cursor object with the specified predefined type.
103: * @param type the type of predefined cursor
104: */
105: static public Cursor getPredefinedCursor(int type) {
106: if (type < Cursor.DEFAULT_CURSOR || type > Cursor.MOVE_CURSOR) {
107: throw new IllegalArgumentException("illegal cursor type");
108: }
109: if (predefined[type] == null) {
110: predefined[type] = new Cursor(type);
111: }
112: return predefined[type];
113: }
114:
115: /**
116: * Return the system default cursor.
117: */
118: static public Cursor getDefaultCursor() {
119: return getPredefinedCursor(Cursor.DEFAULT_CURSOR);
120: }
121:
122: /**
123: * Creates a new cursor object with the specified type.
124: * @param type the type of cursor
125: */
126: public Cursor(int type) {
127: if (type < Cursor.DEFAULT_CURSOR || type > Cursor.MOVE_CURSOR) {
128: throw new IllegalArgumentException("illegal cursor type");
129: }
130: this .type = type;
131: }
132:
133: /**
134: * Returns the type for this cursor.
135: */
136: public int getType() {
137: return type;
138: }
139: }
|