blob: a7dd2a5848e19e998134fa35fa37c7f04943a1b3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.draw2d;
import org.eclipse.draw2d.rap.swt.SWT;
import org.eclipse.swt.graphics.Cursor;
/**
* A collection of cursors.
*/
public class Cursors {
/**
* Returns the cursor corresponding to the given direction, defined in
* {@link PositionConstants}. Note that
* {@link #getDirectionalCursor(int, boolean)} should be used for
* applications which want to run properly when running in a mirrored
* environment. The behavior is the same as calling
* {@link #getDirectionalCursor(int, boolean)
* getDirectionalCursor(direction, false)}.
*
* @param direction
* the relative direction of the desired cursor
* @return The appropriate directional cursor
*/
public static Cursor getDirectionalCursor(int direction) {
return getDirectionalCursor(direction, false);
}
/**
* Returns the cursor corresponding to the given direction and mirroring.
* The direction must be one of:
* <UL>
* <LI>{@link PositionConstants#NORTH}
* <LI>{@link PositionConstants#SOUTH}
* <LI>{@link PositionConstants#EAST}
* <LI>{@link PositionConstants#WEST}
* <LI>{@link PositionConstants#NORTH_EAST}
* <LI>{@link PositionConstants#NORTH_WEST}
* <LI>{@link PositionConstants#SOUTH_EAST}
* <LI>{@link PositionConstants#SOUTH_WEST}
* </UL>
* <P>
* The behavior is undefined for other values. If <code>isMirrored</code> is
* set to <code>true</code>, EAST and WEST will be inverted.
*
* @param direction
* the relative direction of the desired cursor
* @param isMirrored
* <code>true</code> if EAST and WEST should be inverted
* @return The appropriate directional cursor
*/
public static Cursor getDirectionalCursor(int direction, boolean isMirrored) {
if (isMirrored && (direction & PositionConstants.EAST_WEST) != 0)
direction = direction ^ PositionConstants.EAST_WEST;
switch (direction) {
case PositionConstants.NORTH:
return SIZEN;
case PositionConstants.SOUTH:
return SIZES;
case PositionConstants.EAST:
return SIZEE;
case PositionConstants.WEST:
return SIZEW;
case PositionConstants.SOUTH_EAST:
return SIZESE;
case PositionConstants.SOUTH_WEST:
return SIZESW;
case PositionConstants.NORTH_EAST:
return SIZENE;
case PositionConstants.NORTH_WEST:
return SIZENW;
default:
break;
}
return null;
}
/**
* @see SWT#CURSOR_ARROW
*/
public static final Cursor ARROW;
/**
* @see SWT#CURSOR_SIZEN
*/
public static final Cursor SIZEN;
/**
* @see SWT#CURSOR_SIZENE
*/
public static final Cursor SIZENE;
/**
* @see SWT#CURSOR_SIZEE
*/
public static final Cursor SIZEE;
/**
* @see SWT#CURSOR_SIZESE
*/
public static final Cursor SIZESE;
/**
* @see SWT#CURSOR_SIZES
*/
public static final Cursor SIZES;
/**
* @see SWT#CURSOR_SIZESW
*/
public static final Cursor SIZESW;
/**
* @see SWT#CURSOR_SIZEW
*/
public static final Cursor SIZEW;
/**
* @see SWT#CURSOR_SIZENW
*/
public static final Cursor SIZENW;
/**
* @see SWT#CURSOR_APPSTARTING
*/
public static final Cursor APPSTARTING;
/**
* @see SWT#CURSOR_CROSS
*/
public static final Cursor CROSS;
/**
* @see SWT#CURSOR_HAND
*/
public static final Cursor HAND;
/**
* @see SWT#CURSOR_HELP
*/
public static final Cursor HELP;
/**
* @see SWT#CURSOR_IBEAM
*/
public static final Cursor IBEAM;
/**
* @see SWT#CURSOR_NO
*/
public static final Cursor NO;
/**
* @see SWT#CURSOR_SIZEALL
*/
public static final Cursor SIZEALL;
/**
* @see SWT#CURSOR_SIZENESW
*/
public static final Cursor SIZENESW;
/**
* @see SWT#CURSOR_SIZENWSE
*/
public static final Cursor SIZENWSE;
/**
* @see SWT#CURSOR_SIZEWE
*/
public static final Cursor SIZEWE;
/**
* @see SWT#CURSOR_SIZENS
*/
public static final Cursor SIZENS;
/**
* @see SWT#CURSOR_UPARROW
*/
public static final Cursor UPARROW;
/**
* @see SWT#CURSOR_WAIT
*/
public static final Cursor WAIT;
static {
ARROW = new Cursor(null, SWT.CURSOR_ARROW);
SIZEN = new Cursor(null, SWT.CURSOR_SIZEN);
SIZENE = new Cursor(null, SWT.CURSOR_SIZENE);
SIZEE = new Cursor(null, SWT.CURSOR_SIZEE);
SIZESE = new Cursor(null, SWT.CURSOR_SIZESE);
SIZES = new Cursor(null, SWT.CURSOR_SIZES);
SIZESW = new Cursor(null, SWT.CURSOR_SIZESW);
SIZEW = new Cursor(null, SWT.CURSOR_SIZEW);
SIZENW = new Cursor(null, SWT.CURSOR_SIZENW);
SIZENS = new Cursor(null, SWT.CURSOR_SIZENS);
SIZEWE = new Cursor(null, SWT.CURSOR_SIZEWE);
APPSTARTING = new Cursor(null, SWT.CURSOR_APPSTARTING);
CROSS = new Cursor(null, SWT.CURSOR_CROSS);
HAND = new Cursor(null, SWT.CURSOR_HAND);
HELP = new Cursor(null, SWT.CURSOR_HELP);
IBEAM = new Cursor(null, SWT.CURSOR_IBEAM);
NO = new Cursor(null, SWT.CURSOR_NO);
SIZEALL = new Cursor(null, SWT.CURSOR_SIZEALL);
//UNSUPPORTED - these constants are not implemented yet in RAP
// SIZENESW = new Cursor(null, SWT.CURSOR_SIZENESW);
// SIZENWSE = new Cursor(null, SWT.CURSOR_SIZENWSE);
SIZENESW = new Cursor(null, SWT.CURSOR_SIZEALL);
SIZENWSE = new Cursor(null, SWT.CURSOR_SIZEALL);
UPARROW = new Cursor(null, SWT.CURSOR_UPARROW);
WAIT = new Cursor(null, SWT.CURSOR_WAIT);
}
}