mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-05-14 15:42:49 +02:00
Support the full set of standard CSS cursors
This commit is contained in:
committed by
Sam Lantinga
parent
4884dbbe56
commit
e50faf4e6a
@@ -170,26 +170,40 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
||||
|
||||
// Cursor types
|
||||
// private static final int SDL_SYSTEM_CURSOR_NONE = -1;
|
||||
private static final int SDL_SYSTEM_CURSOR_ARROW = 0;
|
||||
private static final int SDL_SYSTEM_CURSOR_IBEAM = 1;
|
||||
private static final int SDL_SYSTEM_CURSOR_DEFAULT = 0;
|
||||
private static final int SDL_SYSTEM_CURSOR_TEXT = 1;
|
||||
private static final int SDL_SYSTEM_CURSOR_WAIT = 2;
|
||||
private static final int SDL_SYSTEM_CURSOR_CROSSHAIR = 3;
|
||||
private static final int SDL_SYSTEM_CURSOR_WAITARROW = 4;
|
||||
private static final int SDL_SYSTEM_CURSOR_SIZENWSE = 5;
|
||||
private static final int SDL_SYSTEM_CURSOR_SIZENESW = 6;
|
||||
private static final int SDL_SYSTEM_CURSOR_SIZEWE = 7;
|
||||
private static final int SDL_SYSTEM_CURSOR_SIZENS = 8;
|
||||
private static final int SDL_SYSTEM_CURSOR_SIZEALL = 9;
|
||||
private static final int SDL_SYSTEM_CURSOR_NO = 10;
|
||||
private static final int SDL_SYSTEM_CURSOR_HAND = 11;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT = 12;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_TOP = 13;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT = 14;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_RIGHT = 15;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT = 16;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_BOTTOM = 17;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT = 18;
|
||||
private static final int SDL_SYSTEM_CURSOR_WINDOW_LEFT = 19;
|
||||
private static final int SDL_SYSTEM_CURSOR_PROGRESS = 4;
|
||||
private static final int SDL_SYSTEM_CURSOR_NWSE_RESIZE = 5;
|
||||
private static final int SDL_SYSTEM_CURSOR_NESW_RESIZE = 6;
|
||||
private static final int SDL_SYSTEM_CURSOR_EW_RESIZE = 7;
|
||||
private static final int SDL_SYSTEM_CURSOR_NS_RESIZE = 8;
|
||||
private static final int SDL_SYSTEM_CURSOR_MOVE = 9;
|
||||
private static final int SDL_SYSTEM_CURSOR_NOT_ALLOWED = 10;
|
||||
private static final int SDL_SYSTEM_CURSOR_POINTER = 11;
|
||||
private static final int SDL_SYSTEM_CURSOR_NW_RESIZE = 12;
|
||||
private static final int SDL_SYSTEM_CURSOR_N_RESIZE = 13;
|
||||
private static final int SDL_SYSTEM_CURSOR_NE_RESIZE = 14;
|
||||
private static final int SDL_SYSTEM_CURSOR_E_RESIZE = 15;
|
||||
private static final int SDL_SYSTEM_CURSOR_SE_RESIZE = 16;
|
||||
private static final int SDL_SYSTEM_CURSOR_S_RESIZE = 17;
|
||||
private static final int SDL_SYSTEM_CURSOR_SW_RESIZE = 18;
|
||||
private static final int SDL_SYSTEM_CURSOR_W_RESIZE = 19;
|
||||
private static final int SDL_SYSTEM_CURSOR_CONTEXT_MENU = 20;
|
||||
private static final int SDL_SYSTEM_CURSOR_HELP = 21;
|
||||
private static final int SDL_SYSTEM_CURSOR_CELL = 22;
|
||||
private static final int SDL_SYSTEM_CURSOR_VERTICAL_TEXT = 23;
|
||||
private static final int SDL_SYSTEM_CURSOR_ALIAS = 24;
|
||||
private static final int SDL_SYSTEM_CURSOR_COPY = 25;
|
||||
private static final int SDL_SYSTEM_CURSOR_NO_DROP = 26;
|
||||
private static final int SDL_SYSTEM_CURSOR_GRAB = 27;
|
||||
private static final int SDL_SYSTEM_CURSOR_GRABBING = 28;
|
||||
private static final int SDL_SYSTEM_CURSOR_COL_RESIZE = 29;
|
||||
private static final int SDL_SYSTEM_CURSOR_ROW_RESIZE = 30;
|
||||
private static final int SDL_SYSTEM_CURSOR_ALL_SCROLL = 31;
|
||||
private static final int SDL_SYSTEM_CURSOR_ZOOM_IN = 32;
|
||||
private static final int SDL_SYSTEM_CURSOR_ZOOM_OUT = 33;
|
||||
|
||||
protected static final int SDL_ORIENTATION_UNKNOWN = 0;
|
||||
protected static final int SDL_ORIENTATION_LANDSCAPE = 1;
|
||||
@@ -1862,10 +1876,10 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
||||
public static boolean setSystemCursor(int cursorID) {
|
||||
int cursor_type = 0; //PointerIcon.TYPE_NULL;
|
||||
switch (cursorID) {
|
||||
case SDL_SYSTEM_CURSOR_ARROW:
|
||||
case SDL_SYSTEM_CURSOR_DEFAULT:
|
||||
cursor_type = 1000; //PointerIcon.TYPE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_IBEAM:
|
||||
case SDL_SYSTEM_CURSOR_TEXT:
|
||||
cursor_type = 1008; //PointerIcon.TYPE_TEXT;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WAIT:
|
||||
@@ -1874,54 +1888,96 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
||||
case SDL_SYSTEM_CURSOR_CROSSHAIR:
|
||||
cursor_type = 1007; //PointerIcon.TYPE_CROSSHAIR;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WAITARROW:
|
||||
case SDL_SYSTEM_CURSOR_PROGRESS:
|
||||
cursor_type = 1004; //PointerIcon.TYPE_WAIT;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_SIZENWSE:
|
||||
case SDL_SYSTEM_CURSOR_NWSE_RESIZE:
|
||||
cursor_type = 1017; //PointerIcon.TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_SIZENESW:
|
||||
case SDL_SYSTEM_CURSOR_NESW_RESIZE:
|
||||
cursor_type = 1016; //PointerIcon.TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_SIZEWE:
|
||||
case SDL_SYSTEM_CURSOR_EW_RESIZE:
|
||||
cursor_type = 1014; //PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_SIZENS:
|
||||
case SDL_SYSTEM_CURSOR_NS_RESIZE:
|
||||
cursor_type = 1015; //PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_SIZEALL:
|
||||
case SDL_SYSTEM_CURSOR_MOVE:
|
||||
cursor_type = 1020; //PointerIcon.TYPE_GRAB;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NO:
|
||||
case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
|
||||
cursor_type = 1012; //PointerIcon.TYPE_NO_DROP;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_HAND:
|
||||
case SDL_SYSTEM_CURSOR_POINTER:
|
||||
cursor_type = 1002; //PointerIcon.TYPE_HAND;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT:
|
||||
case SDL_SYSTEM_CURSOR_NW_RESIZE:
|
||||
cursor_type = 1017; //PointerIcon.TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_TOP:
|
||||
case SDL_SYSTEM_CURSOR_N_RESIZE:
|
||||
cursor_type = 1015; //PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT:
|
||||
case SDL_SYSTEM_CURSOR_NE_RESIZE:
|
||||
cursor_type = 1016; //PointerIcon.TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_RIGHT:
|
||||
case SDL_SYSTEM_CURSOR_E_RESIZE:
|
||||
cursor_type = 1014; //PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT:
|
||||
case SDL_SYSTEM_CURSOR_SE_RESIZE:
|
||||
cursor_type = 1017; //PointerIcon.TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_BOTTOM:
|
||||
case SDL_SYSTEM_CURSOR_S_RESIZE:
|
||||
cursor_type = 1015; //PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT:
|
||||
case SDL_SYSTEM_CURSOR_SW_RESIZE:
|
||||
cursor_type = 1016; //PointerIcon.TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WINDOW_LEFT:
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE:
|
||||
cursor_type = 1014; //PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU:
|
||||
cursor_type = 1001; //PointerIcon.TYPE_CONTEXT_MENU;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_HELP:
|
||||
cursor_type = 1003; //PointerIcon.TYPE_HELP;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CELL:
|
||||
cursor_type = 1006; //PointerIcon.TYPE_CELL;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT:
|
||||
cursor_type = 1009; //PointerIcon.TYPE_VERTICAL_TEXT;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ALIAS:
|
||||
cursor_type = 1010; //PointerIcon.TYPE_ALIAS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_COPY:
|
||||
cursor_type = 1011; //PointerIcon.TYPE_COPY;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP:
|
||||
cursor_type = 1012; //PointerIcon.TYPE_NO_DROP;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRAB:
|
||||
cursor_type = 1020; //PointerIcon.TYPE_GRAB;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRABBING:
|
||||
cursor_type = 1021; //PointerIcon.TYPE_GRABBING;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE:
|
||||
cursor_type = 1014; //PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE:
|
||||
cursor_type = 1015; //PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL:
|
||||
cursor_type = 1013; //PointerIcon.TYPE_ALL_SCROLL;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN:
|
||||
cursor_type = 1018; //PointerIcon.TYPE_ZOOM_IN;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT:
|
||||
cursor_type = 1019; //PointerIcon.TYPE_ZOOM_OUT;
|
||||
break;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) {
|
||||
try {
|
||||
|
||||
@@ -116,6 +116,20 @@ typedef enum SDL_SystemCursor
|
||||
SDL_SYSTEM_CURSOR_S_RESIZE, /**< Window resize bottom. May be NS_RESIZE. */
|
||||
SDL_SYSTEM_CURSOR_SW_RESIZE, /**< Window resize bottom-left. May be NESW_RESIZE. */
|
||||
SDL_SYSTEM_CURSOR_W_RESIZE, /**< Window resize left. May be EW_RESIZE. */
|
||||
SDL_SYSTEM_CURSOR_CONTEXT_MENU, /**< A context menu is available for the object under the cursor. */
|
||||
SDL_SYSTEM_CURSOR_HELP, /**< Help is available for the object under the cursor. */
|
||||
SDL_SYSTEM_CURSOR_CELL, /**< A set of cells may be selected. */
|
||||
SDL_SYSTEM_CURSOR_VERTICAL_TEXT,/**< Text selection. May be TEXT */
|
||||
SDL_SYSTEM_CURSOR_ALIAS, /**< A shortcut is to be created. */
|
||||
SDL_SYSTEM_CURSOR_COPY, /**< Something is to be copied. */
|
||||
SDL_SYSTEM_CURSOR_NO_DROP, /**< The dragged item cannot be dropped at this location. May be NOT_ALLOWED. */
|
||||
SDL_SYSTEM_CURSOR_GRAB, /**< The object under the cursor can be grabbed */
|
||||
SDL_SYSTEM_CURSOR_GRABBING, /**< An object is currently being grabbed. */
|
||||
SDL_SYSTEM_CURSOR_COL_RESIZE, /**< Column resize. May be EW_RESIZE. */
|
||||
SDL_SYSTEM_CURSOR_ROW_RESIZE, /**< Row resize. May be NS_RESIZE. */
|
||||
SDL_SYSTEM_CURSOR_ALL_SCROLL, /**< Four pointed arrow pointing north, south, east, and west. */
|
||||
SDL_SYSTEM_CURSOR_ZOOM_IN, /**< Zoom in. */
|
||||
SDL_SYSTEM_CURSOR_ZOOM_OUT, /**< Zoom out. */
|
||||
SDL_SYSTEM_CURSOR_COUNT
|
||||
} SDL_SystemCursor;
|
||||
|
||||
|
||||
@@ -6463,7 +6463,10 @@ const char *SDL_GetCSSCursorName(SDL_SystemCursor id, const char **fallback_name
|
||||
return "ns-resize";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_MOVE:
|
||||
return "all-scroll";
|
||||
if (fallback_name) {
|
||||
*fallback_name = "all-scroll";
|
||||
}
|
||||
return "move";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
|
||||
return "not-allowed";
|
||||
@@ -6495,6 +6498,51 @@ const char *SDL_GetCSSCursorName(SDL_SystemCursor id, const char **fallback_name
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE:
|
||||
return "w-resize";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU:
|
||||
return "context-menu";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_HELP:
|
||||
return "help";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_CELL:
|
||||
return "cell";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT:
|
||||
return "vertical-text";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_ALIAS:
|
||||
return "alias";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_COPY:
|
||||
return "copy";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP:
|
||||
return "no-drop";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_GRAB:
|
||||
return "grab";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_GRABBING:
|
||||
return "grabbing";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE:
|
||||
return "col-resize";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE:
|
||||
return "row-resize";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL:
|
||||
if (fallback_name) {
|
||||
*fallback_name = "move";
|
||||
}
|
||||
return "all-scroll";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN:
|
||||
return "zoom-in";
|
||||
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT:
|
||||
return "zoom-out";
|
||||
|
||||
default:
|
||||
return "default";
|
||||
}
|
||||
|
||||
@@ -200,9 +200,11 @@ static SDL_Cursor *Cocoa_CreateSystemCursor(SDL_SystemCursor id)
|
||||
nscursor = LoadHiddenSystemCursor(@"resizenorthsouth", @selector(resizeUpDownCursor));
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_MOVE:
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL:
|
||||
nscursor = LoadHiddenSystemCursor(@"move", @selector(closedHandCursor));
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP:
|
||||
nscursor = [NSCursor operationNotAllowedCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_POINTER:
|
||||
@@ -232,6 +234,42 @@ static SDL_Cursor *Cocoa_CreateSystemCursor(SDL_SystemCursor id)
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE:
|
||||
nscursor = LoadHiddenSystemCursor(@"resizeeastwest", @selector(resizeLeftRightCursor));
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU:
|
||||
nscursor = [NSCursor contextualMenuCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_HELP:
|
||||
nscursor = LoadHiddenSystemCursor(@"help", @selector(helpCursor));
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CELL:
|
||||
nscursor = LoadHiddenSystemCursor(@"cell", @selector(cellCursor));
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT:
|
||||
nscursor = [NSCursor IBeamCursorForVerticalLayout];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ALIAS:
|
||||
nscursor = [NSCursor dragLinkCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_COPY:
|
||||
nscursor = [NSCursor dragCopyCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRAB:
|
||||
nscursor = [NSCursor openHandCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRABBING:
|
||||
nscursor = [NSCursor closedHandCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE:
|
||||
nscursor = [NSCursor resizeLeftRightCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE:
|
||||
nscursor = [NSCursor resizeUpDownCursor];
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN:
|
||||
nscursor = LoadHiddenSystemCursor(@"zoomin", @selector(zoomInCursor));
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT:
|
||||
nscursor = LoadHiddenSystemCursor(@"zoomout", @selector(zoomOutCursor));
|
||||
break;
|
||||
default:
|
||||
SDL_assert(!"Unknown system cursor");
|
||||
return NULL;
|
||||
|
||||
@@ -173,6 +173,20 @@ static SDL_Cursor * HAIKU_CreateSystemCursor(SDL_SystemCursor id)
|
||||
CURSORCASE(S_RESIZE, RESIZE_NORTH_SOUTH);
|
||||
CURSORCASE(SW_RESIZE, RESIZE_NORTH_EAST_SOUTH_WEST);
|
||||
CURSORCASE(W_RESIZE, RESIZE_EAST_WEST);
|
||||
CURSORCASE(CONTEXT_MENU, CONTEXT_MENU);
|
||||
CURSORCASE(HELP, HELP);
|
||||
CURSORCASE(CELL, CROSS_HAIR);
|
||||
CURSORCASE(VERTICAL_TEXT, I_BEAM_HORIZONTAL);
|
||||
CURSORCASE(ALIAS, CREATE_LINK);
|
||||
CURSORCASE(COPY, COPY);
|
||||
CURSORCASE(NO_DROP, NOT_ALLOWED);
|
||||
CURSORCASE(GRAB, GRAB);
|
||||
CURSORCASE(GRABBING, GRABBING);
|
||||
CURSORCASE(COL_RESIZE, RESIZE_EAST_WEST);
|
||||
CURSORCASE(ROW_RESIZE, RESIZE_NORTH_SOUTH);
|
||||
CURSORCASE(ALL_SCROLL, MOVE);
|
||||
CURSORCASE(ZOOM_IN, ZOOM_IN);
|
||||
CURSORCASE(ZOOM_OUT, ZOOM_OUT);
|
||||
#undef CURSORCASE
|
||||
default:
|
||||
SDL_assert(0);
|
||||
|
||||
@@ -36,15 +36,19 @@ static int SDLToScreenCursorShape(SDL_SystemCursor id)
|
||||
{
|
||||
case SDL_SYSTEM_CURSOR_DEFAULT:
|
||||
case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP:
|
||||
shape = SCREEN_CURSOR_SHAPE_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_TEXT:
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT:
|
||||
shape = SCREEN_CURSOR_SHAPE_IBEAM;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WAIT:
|
||||
case SDL_SYSTEM_CURSOR_PROGRESS:
|
||||
shape = SCREEN_CURSOR_SHAPE_WAIT;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CROSSHAIR:
|
||||
case SDL_SYSTEM_CURSOR_CELL:
|
||||
shape = SCREEN_CURSOR_SHAPE_CROSS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NWSE_RESIZE:
|
||||
@@ -52,11 +56,40 @@ static int SDLToScreenCursorShape(SDL_SystemCursor id)
|
||||
case SDL_SYSTEM_CURSOR_EW_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_NS_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_MOVE:
|
||||
case SDL_SYSTEM_CURSOR_NW_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_N_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_NE_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_E_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_SE_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_S_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_SW_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL:
|
||||
shape = SCREEN_CURSOR_SHAPE_MOVE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_POINTER:
|
||||
case SDL_SYSTEM_CURSOR_HELP:
|
||||
case SDL_SYSTEM_CURSOR_ALIAS:
|
||||
case SDL_SYSTEM_CURSOR_COPY:
|
||||
shape = SCREEN_CURSOR_SHAPE_HAND;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU:
|
||||
shape = SCREEN_CURSOR_SHAPE_MENU;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRAB:
|
||||
shape = SCREEN_CURSOR_SHAPE_GRAB;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRABBING:
|
||||
shape = SCREEN_CURSOR_SHAPE_GRABBING;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN:
|
||||
shape = SCREEN_CURSOR_SHAPE_ZOOM_IN;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT:
|
||||
shape = SCREEN_CURSOR_SHAPE_ZOOM_OUT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -989,7 +989,7 @@ static enum wp_cursor_shape_device_v1_shape Wayland_GetSystemCursorShape(SDL_Sys
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NS_RESIZE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_MOVE:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ALL_SCROLL;
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_MOVE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NOT_ALLOWED;
|
||||
@@ -1021,6 +1021,48 @@ static enum wp_cursor_shape_device_v1_shape Wayland_GetSystemCursorShape(SDL_Sys
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_W_RESIZE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_CONTEXT_MENU;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_HELP:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_HELP;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CELL:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_CELL;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_VERTICAL_TEXT;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ALIAS:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ALIAS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_COPY:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_COPY;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NO_DROP;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRAB:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_GRAB;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_GRABBING:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_GRABBING;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_COL_RESIZE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ROW_RESIZE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ALL_SCROLL;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ZOOM_IN;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT:
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ZOOM_OUT;
|
||||
break;
|
||||
default:
|
||||
SDL_assert(0); // Should never be here...
|
||||
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_DEFAULT;
|
||||
|
||||
@@ -490,62 +490,62 @@ static SDL_Cursor *WIN_CreateSystemCursor(SDL_SystemCursor id)
|
||||
name = IDC_ARROW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_TEXT:
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT:
|
||||
name = IDC_IBEAM;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_WAIT:
|
||||
name = IDC_WAIT;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_CROSSHAIR:
|
||||
case SDL_SYSTEM_CURSOR_CELL:
|
||||
name = IDC_CROSS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_PROGRESS:
|
||||
name = IDC_APPSTARTING;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NWSE_RESIZE:
|
||||
name = IDC_SIZENWSE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NESW_RESIZE:
|
||||
name = IDC_SIZENESW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_EW_RESIZE:
|
||||
name = IDC_SIZEWE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NS_RESIZE:
|
||||
name = IDC_SIZENS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_MOVE:
|
||||
name = IDC_SIZEALL;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
|
||||
name = IDC_NO;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_POINTER:
|
||||
name = IDC_HAND;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NW_RESIZE:
|
||||
name = IDC_SIZENWSE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_N_RESIZE:
|
||||
name = IDC_SIZENS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NE_RESIZE:
|
||||
name = IDC_SIZENESW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_E_RESIZE:
|
||||
name = IDC_SIZEWE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_SE_RESIZE:
|
||||
name = IDC_SIZENWSE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_S_RESIZE:
|
||||
name = IDC_SIZENS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NESW_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_NE_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_SW_RESIZE:
|
||||
name = IDC_SIZENESW;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_EW_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_E_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE:
|
||||
name = IDC_SIZEWE;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NS_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_N_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_S_RESIZE:
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE:
|
||||
name = IDC_SIZENS;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_MOVE:
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL:
|
||||
name = IDC_SIZEALL;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP:
|
||||
name = IDC_NO;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_POINTER:
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU:
|
||||
case SDL_SYSTEM_CURSOR_ALIAS:
|
||||
case SDL_SYSTEM_CURSOR_COPY:
|
||||
case SDL_SYSTEM_CURSOR_GRAB:
|
||||
case SDL_SYSTEM_CURSOR_GRABBING:
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN:
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT:
|
||||
name = IDC_HAND;
|
||||
break;
|
||||
case SDL_SYSTEM_CURSOR_HELP:
|
||||
name = IDC_HELP;
|
||||
break;
|
||||
}
|
||||
return WIN_CreateCursorAndData(LoadCursor(NULL, name));
|
||||
}
|
||||
|
||||
@@ -298,6 +298,20 @@ static unsigned int GetLegacySystemCursorShape(SDL_SystemCursor id)
|
||||
case SDL_SYSTEM_CURSOR_S_RESIZE: return XC_bottom_side;
|
||||
case SDL_SYSTEM_CURSOR_SW_RESIZE: return XC_bottom_left_corner;
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE: return XC_left_side;
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU: return XC_hand2;
|
||||
case SDL_SYSTEM_CURSOR_HELP: return XC_question_arrow;
|
||||
case SDL_SYSTEM_CURSOR_CELL: return XC_cross;
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT: return XC_xterm;
|
||||
case SDL_SYSTEM_CURSOR_ALIAS: return XC_hand2;
|
||||
case SDL_SYSTEM_CURSOR_COPY: return XC_hand2;
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP: return XC_pirate;
|
||||
case SDL_SYSTEM_CURSOR_GRAB: return XC_hand2;
|
||||
case SDL_SYSTEM_CURSOR_GRABBING: return XC_hand2;
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE: return XC_sb_h_double_arrow;
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE: return XC_sb_v_double_arrow;
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL: return XC_fleur;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN: return XC_hand2;
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT: return XC_hand2;
|
||||
case SDL_SYSTEM_CURSOR_COUNT: break; // so the compiler might notice if an enum value is missing here.
|
||||
}
|
||||
|
||||
|
||||
@@ -397,6 +397,34 @@ static const char *get_active_cursor_name()
|
||||
return "Window resize bottom-left";
|
||||
case SDL_SYSTEM_CURSOR_W_RESIZE:
|
||||
return "Window resize left";
|
||||
case SDL_SYSTEM_CURSOR_CONTEXT_MENU:
|
||||
return "Context menu";
|
||||
case SDL_SYSTEM_CURSOR_HELP:
|
||||
return "Help";
|
||||
case SDL_SYSTEM_CURSOR_CELL:
|
||||
return "Cell";
|
||||
case SDL_SYSTEM_CURSOR_VERTICAL_TEXT:
|
||||
return "Vertical text";
|
||||
case SDL_SYSTEM_CURSOR_ALIAS:
|
||||
return "Alias";
|
||||
case SDL_SYSTEM_CURSOR_COPY:
|
||||
return "Copy";
|
||||
case SDL_SYSTEM_CURSOR_NO_DROP:
|
||||
return "No drop";
|
||||
case SDL_SYSTEM_CURSOR_GRAB:
|
||||
return "Grab";
|
||||
case SDL_SYSTEM_CURSOR_GRABBING:
|
||||
return "Grabbing";
|
||||
case SDL_SYSTEM_CURSOR_COL_RESIZE:
|
||||
return "Column resize";
|
||||
case SDL_SYSTEM_CURSOR_ROW_RESIZE:
|
||||
return "Row resize";
|
||||
case SDL_SYSTEM_CURSOR_ALL_SCROLL:
|
||||
return "All scroll: Four pointed arrow pointing north, south, east, and west";
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_IN:
|
||||
return "Zoom in";
|
||||
case SDL_SYSTEM_CURSOR_ZOOM_OUT:
|
||||
return "Zoom out";
|
||||
default:
|
||||
return "UNKNOWN CURSOR TYPE, FIX THIS PROGRAM.";
|
||||
}
|
||||
|
||||
@@ -22,26 +22,40 @@ static SDLTest_CommonState *state;
|
||||
static int done;
|
||||
|
||||
static const char *cursorNames[] = {
|
||||
"arrow",
|
||||
"ibeam",
|
||||
"default",
|
||||
"text",
|
||||
"wait",
|
||||
"crosshair",
|
||||
"waitarrow",
|
||||
"sizeNWSE",
|
||||
"sizeNESW",
|
||||
"sizeWE",
|
||||
"sizeNS",
|
||||
"sizeALL",
|
||||
"NO",
|
||||
"hand",
|
||||
"window top left",
|
||||
"window top",
|
||||
"window top right",
|
||||
"window right",
|
||||
"window bottom right",
|
||||
"window bottom",
|
||||
"window bottom left",
|
||||
"window left"
|
||||
"progress",
|
||||
"NWSE resize",
|
||||
"NESW resize",
|
||||
"EW resize",
|
||||
"NS resize",
|
||||
"move",
|
||||
"not allowed",
|
||||
"pointer",
|
||||
"NW resize",
|
||||
"N resize",
|
||||
"NE resize",
|
||||
"E resize",
|
||||
"SE resize",
|
||||
"S resize",
|
||||
"SW resize",
|
||||
"W resize",
|
||||
"context menu",
|
||||
"help",
|
||||
"cell",
|
||||
"vertical text",
|
||||
"alias",
|
||||
"copy",
|
||||
"no drop",
|
||||
"grab",
|
||||
"grabbing",
|
||||
"column resize",
|
||||
"row resize",
|
||||
"all scroll",
|
||||
"zoom in",
|
||||
"zoom out"
|
||||
};
|
||||
SDL_COMPILE_TIME_ASSERT(cursorNames, SDL_arraysize(cursorNames) == SDL_SYSTEM_CURSOR_COUNT);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user