| /******************************************************************************* |
| * 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.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); |
| } |
| |
| } |