From 9a9a3d1a338ebe2573a1c91a593b83ad093f9f25 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Sun, 26 May 2024 00:28:17 -0400
Subject: [PATCH] SDL_SystemCursor: rename enum items to match CSS.
Fixes #9079.
---
build-scripts/SDL_migration.cocci | 72 ++++++++++++++++++++++++++++
docs/README-migration.md | 22 +++++++++
include/SDL3/SDL_mouse.h | 40 ++++++++--------
include/SDL3/SDL_oldnames.h | 36 ++++++++++++++
src/video/SDL_video.c | 36 +++++++-------
src/video/android/SDL_androidmouse.c | 2 +-
src/video/cocoa/SDL_cocoamouse.m | 36 +++++++-------
src/video/haiku/SDL_bvideo.cc | 53 ++++++++++----------
src/video/wayland/SDL_waylandmouse.c | 58 +++++++++++-----------
src/video/windows/SDL_windowsmouse.c | 36 +++++++-------
src/video/winrt/SDL_winrtmouse.cpp | 38 +++++++--------
src/video/x11/SDL_x11mouse.c | 56 +++++++++++-----------
test/testcustomcursor.c | 48 +++++++++----------
13 files changed, 332 insertions(+), 201 deletions(-)
diff --git a/build-scripts/SDL_migration.cocci b/build-scripts/SDL_migration.cocci
index cca3621d444e5..cf91353c6b279 100644
--- a/build-scripts/SDL_migration.cocci
+++ b/build-scripts/SDL_migration.cocci
@@ -3210,3 +3210,75 @@ typedef SDL_Colour, SDL_Color;
- SDL_BlitScaled
+ SDL_BlitSurfaceScaled
(...)
+@@
+@@
+- SDL_SYSTEM_CURSOR_ARROW
++ SDL_SYSTEM_CURSOR_DEFAULT
+@@
+@@
+- SDL_SYSTEM_CURSOR_IBEAM
++ SDL_SYSTEM_CURSOR_TEXT
+@@
+@@
+- SDL_SYSTEM_CURSOR_WAITARROW
++ SDL_SYSTEM_CURSOR_PROGRESS
+@@
+@@
+- SDL_SYSTEM_CURSOR_SIZENWSE
++ SDL_SYSTEM_CURSOR_NWSE_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_SIZENESW
++ SDL_SYSTEM_CURSOR_NESW_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_SIZEWE
++ SDL_SYSTEM_CURSOR_EW_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_SIZENS
++ SDL_SYSTEM_CURSOR_NS_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_SIZEALL
++ SDL_SYSTEM_CURSOR_MOVE
+@@
+@@
+- SDL_SYSTEM_CURSOR_NO
++ SDL_SYSTEM_CURSOR_NOT_ALLOWED
+@@
+@@
+- SDL_SYSTEM_CURSOR_HAND
++ SDL_SYSTEM_CURSOR_POINTER
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT
++ SDL_SYSTEM_CURSOR_NW_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_TOP
++ SDL_SYSTEM_CURSOR_N_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT
++ SDL_SYSTEM_CURSOR_NE_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_RIGHT
++ SDL_SYSTEM_CURSOR_E_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT
++ SDL_SYSTEM_CURSOR_SE_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_BOTTOM
++ SDL_SYSTEM_CURSOR_S_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT
++ SDL_SYSTEM_CURSOR_SW_RESIZE
+@@
+@@
+- SDL_SYSTEM_CURSOR_WINDOW_LEFT
++ SDL_SYSTEM_CURSOR_W_RESIZE
diff --git a/docs/README-migration.md b/docs/README-migration.md
index e141b844fa67e..c7978a1bc0de7 100644
--- a/docs/README-migration.md
+++ b/docs/README-migration.md
@@ -961,9 +961,31 @@ SDL_ShowCursor() has been split into three functions: SDL_ShowCursor(), SDL_Hide
SDL_GetMouseState(), SDL_GetGlobalMouseState(), SDL_GetRelativeMouseState(), SDL_WarpMouseInWindow(), and SDL_WarpMouseGlobal() all use floating point mouse positions, to provide sub-pixel precision on platforms that support it.
+SDL_SystemCursor's items from SDL2 have been renamed to match CSS cursor names.
+
The following functions have been renamed:
* SDL_FreeCursor() => SDL_DestroyCursor()
+The following symbols have been renamed:
+* SDL_SYSTEM_CURSOR_ARROW => SDL_SYSTEM_CURSOR_DEFAULT
+* SDL_SYSTEM_CURSOR_HAND => SDL_SYSTEM_CURSOR_POINTER
+* SDL_SYSTEM_CURSOR_IBEAM => SDL_SYSTEM_CURSOR_TEXT
+* SDL_SYSTEM_CURSOR_NO => SDL_SYSTEM_CURSOR_NOT_ALLOWED
+* SDL_SYSTEM_CURSOR_SIZEALL => SDL_SYSTEM_CURSOR_MOVE
+* SDL_SYSTEM_CURSOR_SIZENESW => SDL_SYSTEM_CURSOR_NESW_RESIZE
+* SDL_SYSTEM_CURSOR_SIZENS => SDL_SYSTEM_CURSOR_NS_RESIZE
+* SDL_SYSTEM_CURSOR_SIZENWSE => SDL_SYSTEM_CURSOR_NWSE_RESIZE
+* SDL_SYSTEM_CURSOR_SIZEWE => SDL_SYSTEM_CURSOR_EW_RESIZE
+* SDL_SYSTEM_CURSOR_WAITARROW => SDL_SYSTEM_CURSOR_PROGRESS
+* SDL_SYSTEM_CURSOR_WINDOW_BOTTOM => SDL_SYSTEM_CURSOR_S_RESIZE
+* SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT => SDL_SYSTEM_CURSOR_SW_RESIZE
+* SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT => SDL_SYSTEM_CURSOR_SE_RESIZE
+* SDL_SYSTEM_CURSOR_WINDOW_LEFT => SDL_SYSTEM_CURSOR_W_RESIZE
+* SDL_SYSTEM_CURSOR_WINDOW_RIGHT => SDL_SYSTEM_CURSOR_E_RESIZE
+* SDL_SYSTEM_CURSOR_WINDOW_TOP => SDL_SYSTEM_CURSOR_N_RESIZE
+* SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT => SDL_SYSTEM_CURSOR_NW_RESIZE
+* SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT => SDL_SYSTEM_CURSOR_NE_RESIZE
+
## SDL_mutex.h
SDL_MUTEX_MAXWAIT has been removed; it suggested there was a maximum timeout one could outlive, instead of an infinite wait. Instead, pass a -1 to functions that accepted this symbol.
diff --git a/include/SDL3/SDL_mouse.h b/include/SDL3/SDL_mouse.h
index ee887b723b5ee..483f96b830127 100644
--- a/include/SDL3/SDL_mouse.h
+++ b/include/SDL3/SDL_mouse.h
@@ -49,26 +49,26 @@ typedef struct SDL_Cursor SDL_Cursor; /**< Implementation dependent */
*/
typedef enum SDL_SystemCursor
{
- SDL_SYSTEM_CURSOR_ARROW, /**< Arrow */
- SDL_SYSTEM_CURSOR_IBEAM, /**< I-beam */
- SDL_SYSTEM_CURSOR_WAIT, /**< Wait */
- SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair */
- SDL_SYSTEM_CURSOR_WAITARROW, /**< Small wait cursor (or Wait if not available) */
- SDL_SYSTEM_CURSOR_SIZENWSE, /**< Double arrow pointing northwest and southeast */
- SDL_SYSTEM_CURSOR_SIZENESW, /**< Double arrow pointing northeast and southwest */
- SDL_SYSTEM_CURSOR_SIZEWE, /**< Double arrow pointing west and east */
- SDL_SYSTEM_CURSOR_SIZENS, /**< Double arrow pointing north and south */
- SDL_SYSTEM_CURSOR_SIZEALL, /**< Four pointed arrow pointing north, south, east, and west */
- SDL_SYSTEM_CURSOR_NO, /**< Slashed circle or crossbones */
- SDL_SYSTEM_CURSOR_HAND, /**< Hand */
- SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT, /**< Window resize top-left (or SIZENWSE) */
- SDL_SYSTEM_CURSOR_WINDOW_TOP, /**< Window resize top (or SIZENS) */
- SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT, /**< Window resize top-right (or SIZENESW) */
- SDL_SYSTEM_CURSOR_WINDOW_RIGHT, /**< Window resize right (or SIZEWE) */
- SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT, /**< Window resize bottom-right (or SIZENWSE) */
- SDL_SYSTEM_CURSOR_WINDOW_BOTTOM, /**< Window resize bottom (or SIZENS) */
- SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT, /**< Window resize bottom-left (or SIZENESW) */
- SDL_SYSTEM_CURSOR_WINDOW_LEFT, /**< Window resize left (or SIZEWE) */
+ SDL_SYSTEM_CURSOR_DEFAULT, /**< Default cursor. Usually an arrow */
+ SDL_SYSTEM_CURSOR_TEXT, /**< Text selection. Usually an I-beam */
+ SDL_SYSTEM_CURSOR_WAIT, /**< Wait. Usually an hourglass or watch or spinning ball. */
+ SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair. */
+ SDL_SYSTEM_CURSOR_PROGRESS, /**< Program is busy but still interactive. Usually it's WAIT with an arrow. */
+ SDL_SYSTEM_CURSOR_NWSE_RESIZE, /**< Double arrow pointing northwest and southeast. */
+ SDL_SYSTEM_CURSOR_NESW_RESIZE, /**< Double arrow pointing northeast and southwest. */
+ SDL_SYSTEM_CURSOR_EW_RESIZE, /**< Double arrow pointing west and east. */
+ SDL_SYSTEM_CURSOR_NS_RESIZE, /**< Double arrow pointing north and south. */
+ SDL_SYSTEM_CURSOR_MOVE, /**< Four pointed arrow pointing north, south, east, and west. */
+ SDL_SYSTEM_CURSOR_NOT_ALLOWED, /**< Not permitted. Usually a slashed circle or crossbones. */
+ SDL_SYSTEM_CURSOR_POINTER, /**< Pointer that indicates a link. Usually a pointing hand. */
+ SDL_SYSTEM_CURSOR_NW_RESIZE, /**< Window resize top-left (or SIZENWSE) */
+ SDL_SYSTEM_CURSOR_N_RESIZE, /**< Window resize top (or SIZENS) */
+ SDL_SYSTEM_CURSOR_NE_RESIZE, /**< Window resize top-right (or SIZENESW) */
+ SDL_SYSTEM_CURSOR_E_RESIZE, /**< Window resize right (or SIZEWE) */
+ SDL_SYSTEM_CURSOR_SE_RESIZE, /**< Window resize bottom-right (or SIZENWSE) */
+ SDL_SYSTEM_CURSOR_S_RESIZE, /**< Window resize bottom (or SIZENS) */
+ SDL_SYSTEM_CURSOR_SW_RESIZE, /**< Window resize bottom-left (or SIZENESW) */
+ SDL_SYSTEM_CURSOR_W_RESIZE, /**< Window resize left (or SIZEWE) */
SDL_NUM_SYSTEM_CURSORS
} SDL_SystemCursor;
diff --git a/include/SDL3/SDL_oldnames.h b/include/SDL3/SDL_oldnames.h
index f7ebd77fa8891..c551586f493c1 100644
--- a/include/SDL3/SDL_oldnames.h
+++ b/include/SDL3/SDL_oldnames.h
@@ -372,6 +372,24 @@
/* ##SDL_mouse.h */
#define SDL_FreeCursor SDL_DestroyCursor
+#define SDL_SYSTEM_CURSOR_ARROW SDL_SYSTEM_CURSOR_DEFAULT
+#define SDL_SYSTEM_CURSOR_HAND SDL_SYSTEM_CURSOR_POINTER
+#define SDL_SYSTEM_CURSOR_IBEAM SDL_SYSTEM_CURSOR_TEXT
+#define SDL_SYSTEM_CURSOR_NO SDL_SYSTEM_CURSOR_NOT_ALLOWED
+#define SDL_SYSTEM_CURSOR_SIZEALL SDL_SYSTEM_CURSOR_MOVE
+#define SDL_SYSTEM_CURSOR_SIZENESW SDL_SYSTEM_CURSOR_NESW_RESIZE
+#define SDL_SYSTEM_CURSOR_SIZENS SDL_SYSTEM_CURSOR_NS_RESIZE
+#define SDL_SYSTEM_CURSOR_SIZENWSE SDL_SYSTEM_CURSOR_NWSE_RESIZE
+#define SDL_SYSTEM_CURSOR_SIZEWE SDL_SYSTEM_CURSOR_EW_RESIZE
+#define SDL_SYSTEM_CURSOR_WAITARROW SDL_SYSTEM_CURSOR_PROGRESS
+#define SDL_SYSTEM_CURSOR_WINDOW_BOTTOM SDL_SYSTEM_CURSOR_S_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT SDL_SYSTEM_CURSOR_SW_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT SDL_SYSTEM_CURSOR_SE_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_LEFT SDL_SYSTEM_CURSOR_W_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_RIGHT SDL_SYSTEM_CURSOR_E_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_TOP SDL_SYSTEM_CURSOR_N_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT SDL_SYSTEM_CURSOR_NW_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT SDL_SYSTEM_CURSOR_NE_RESIZE
/* ##SDL_mutex.h */
#define SDL_CondBroadcast SDL_BroadcastCondition
@@ -895,6 +913,24 @@
/* ##SDL_mouse.h */
#define SDL_FreeCursor SDL_FreeCursor_renamed_SDL_DestroyCursor
+#define SDL_SYSTEM_CURSOR_ARROW SDL_SYSTEM_CURSOR_ARROW_renamed_SDL_SYSTEM_CURSOR_DEFAULT
+#define SDL_SYSTEM_CURSOR_HAND SDL_SYSTEM_CURSOR_HAND_renamed_SDL_SYSTEM_CURSOR_POINTER
+#define SDL_SYSTEM_CURSOR_IBEAM SDL_SYSTEM_CURSOR_IBEAM_renamed_SDL_SYSTEM_CURSOR_TEXT
+#define SDL_SYSTEM_CURSOR_NO SDL_SYSTEM_CURSOR_NO_renamed_SDL_SYSTEM_CURSOR_NOT_ALLOWED
+#define SDL_SYSTEM_CURSOR_SIZEALL SDL_SYSTEM_CURSOR_SIZEALL_renamed_SDL_SYSTEM_CURSOR_MOVE
+#define SDL_SYSTEM_CURSOR_SIZENESW SDL_SYSTEM_CURSOR_SIZENESW_renamed_SDL_SYSTEM_CURSOR_NESW_RESIZE
+#define SDL_SYSTEM_CURSOR_SIZENS SDL_SYSTEM_CURSOR_SIZENS_renamed_SDL_SYSTEM_CURSOR_NS_RESIZE
+#define SDL_SYSTEM_CURSOR_SIZENWSE SDL_SYSTEM_CURSOR_SIZENWSE_renamed_SDL_SYSTEM_CURSOR_NWSE_RESIZE
+#define SDL_SYSTEM_CURSOR_SIZEWE SDL_SYSTEM_CURSOR_SIZEWE_renamed_SDL_SYSTEM_CURSOR_EW_RESIZE
+#define SDL_SYSTEM_CURSOR_WAITARROW SDL_SYSTEM_CURSOR_WAITARROW_renamed_SDL_SYSTEM_CURSOR_PROGRESS
+#define SDL_SYSTEM_CURSOR_WINDOW_BOTTOM SDL_SYSTEM_CURSOR_WINDOW_BOTTOM_renamed_SDL_SYSTEM_CURSOR_S_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT_renamed_SDL_SYSTEM_CURSOR_SW_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT_renamed_SDL_SYSTEM_CURSOR_SE_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_LEFT SDL_SYSTEM_CURSOR_WINDOW_LEFT_renamed_SDL_SYSTEM_CURSOR_W_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_RIGHT SDL_SYSTEM_CURSOR_WINDOW_RIGHT_renamed_SDL_SYSTEM_CURSOR_E_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_TOP SDL_SYSTEM_CURSOR_WINDOW_TOP_renamed_SDL_SYSTEM_CURSOR_N_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT_renamed_SDL_SYSTEM_CURSOR_NW_RESIZE
+#define SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT_renamed_SDL_SYSTEM_CURSOR_NE_RESIZE
/* ##SDL_mutex.h */
#define SDL_CondBroadcast SDL_CondBroadcast_renamed_SDL_BroadcastCondition
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index 2f22a2f5217d3..38f7123adcf38 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -5498,10 +5498,10 @@ const char *SDL_GetCSSCursorName(SDL_SystemCursor id, const char **fallback_name
/* Reference: https://www.w3.org/TR/css-ui-4/#cursor */
/* Also in: https://www.freedesktop.org/wiki/Specifications/cursor-spec/ */
switch (id) {
- case SDL_SYSTEM_CURSOR_ARROW:
+ case SDL_SYSTEM_CURSOR_DEFAULT:
return "default";
- case SDL_SYSTEM_CURSOR_IBEAM:
+ case SDL_SYSTEM_CURSOR_TEXT:
return "text";
case SDL_SYSTEM_CURSOR_WAIT:
@@ -5510,66 +5510,66 @@ const char *SDL_GetCSSCursorName(SDL_SystemCursor id, const char **fallback_name
case SDL_SYSTEM_CURSOR_CROSSHAIR:
return "crosshair";
- case SDL_SYSTEM_CURSOR_WAITARROW:
+ case SDL_SYSTEM_CURSOR_PROGRESS:
return "progress";
- case SDL_SYSTEM_CURSOR_SIZENWSE:
+ case SDL_SYSTEM_CURSOR_NWSE_RESIZE:
if (fallback_name) {
/* only a single arrow */
*fallback_name = "nw-resize";
}
return "nwse-resize";
- case SDL_SYSTEM_CURSOR_SIZENESW:
+ case SDL_SYSTEM_CURSOR_NESW_RESIZE:
if (fallback_name) {
/* only a single arrow */
*fallback_name = "ne-resize";
}
return "nesw-resize";
- case SDL_SYSTEM_CURSOR_SIZEWE:
+ case SDL_SYSTEM_CURSOR_EW_RESIZE:
if (fallback_name) {
*fallback_name = "col-resize";
}
return "ew-resize";
- case SDL_SYSTEM_CURSOR_SIZENS:
+ case SDL_SYSTEM_CURSOR_NS_RESIZE:
if (fallback_name) {
*fallback_name = "row-resize";
}
return "ns-resize";
- case SDL_SYSTEM_CURSOR_SIZEALL:
+ case SDL_SYSTEM_CURSOR_MOVE:
return "all-scroll";
- case SDL_SYSTEM_CURSOR_NO:
+ case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
return "not-allowed";
- case SDL_SYSTEM_CURSOR_HAND:
+ case SDL_SYSTEM_CURSOR_POINTER:
return "pointer";
- case SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT:
+ case SDL_SYSTEM_CURSOR_NW_RESIZE:
return "nw-resize";
- case SDL_SYSTEM_CURSOR_WINDOW_TOP:
+ case SDL_SYSTEM_CURSOR_N_RESIZE:
return "n-resize";
- case SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT:
+ case SDL_SYSTEM_CURSOR_NE_RESIZE:
return "ne-resize";
- case SDL_SYSTEM_CURSOR_WINDOW_RIGHT:
+ case SDL_SYSTEM_CURSOR_E_RESIZE:
return "e-resize";
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT:
+ case SDL_SYSTEM_CURSOR_SE_RESIZE:
return "se-resize";
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOM:
+ case SDL_SYSTEM_CURSOR_S_RESIZE:
return "s-resize";
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT:
+ case SDL_SYSTEM_CURSOR_SW_RESIZE:
return "sw-resize";
- case SDL_SYSTEM_CURSOR_WINDOW_LEFT:
+ case SDL_SYSTEM_CURSOR_W_RESIZE:
return "w-resize";
default:
diff --git a/src/video/android/SDL_androidmouse.c b/src/video/android/SDL_androidmouse.c
index 84c15e50a534f..2cc50e279a3d7 100644
--- a/src/video/android/SDL_androidmouse.c
+++ b/src/video/android/SDL_androidmouse.c
@@ -76,7 +76,7 @@ static SDL_Cursor *Android_WrapCursor(int custom_cursor, int system_cursor)
static SDL_Cursor *Android_CreateDefaultCursor()
{
- return Android_WrapCursor(0, SDL_SYSTEM_CURSOR_ARROW);
+ return Android_WrapCursor(0, SDL_SYSTEM_CURSOR_DEFAULT);
}
static SDL_Cursor *Android_CreateCursor(SDL_Surface *surface, int hot_x, int hot_y)
diff --git a/src/video/cocoa/SDL_cocoamouse.m b/src/video/cocoa/SDL_cocoamouse.m
index ffbc34046fb27..7eb0c9658a216 100644
--- a/src/video/cocoa/SDL_cocoamouse.m
+++ b/src/video/cocoa/SDL_cocoamouse.m
@@ -152,10 +152,10 @@ + (NSCursor *)invisibleCursor
SDL_Cursor *cursor = NULL;
switch (id) {
- case SDL_SYSTEM_CURSOR_ARROW:
+ case SDL_SYSTEM_CURSOR_DEFAULT:
nscursor = [NSCursor arrowCursor];
break;
- case SDL_SYSTEM_CURSOR_IBEAM:
+ case SDL_SYSTEM_CURSOR_TEXT:
nscursor = [NSCursor IBeamCursor];
break;
case SDL_SYSTEM_CURSOR_CROSSHAIR:
@@ -164,52 +164,52 @@ + (NSCursor *)invisibleCursor
case SDL_SYSTEM_CURSOR_WAIT: /* !!! FIXME: this is more like WAITARROW */
nscursor = LoadHiddenSystemCursor(@"busybutclickable", @selector(arrowCursor));
break;
- case SDL_SYSTEM_CURSOR_WAITARROW: /* !!! FIXME: this is meant to be animated */
+ case SDL_SYSTEM_CURSOR_PROGRESS: /* !!! FIXME: this is meant to be animated */
nscursor = LoadHiddenSystemCursor(@"busybutclickable", @selector(arrowCursor));
break;
- case SDL_SYSTEM_CURSOR_SIZENWSE:
+ case SDL_SYSTEM_CURSOR_NWSE_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenorthwestsoutheast", @selector(closedHandCursor));
break;
- case SDL_SYSTEM_CURSOR_SIZENESW:
+ case SDL_SYSTEM_CURSOR_NESW_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenortheastsouthwest", @selector(closedHandCursor));
break;
- case SDL_SYSTEM_CURSOR_SIZEWE:
+ case SDL_SYSTEM_CURSOR_EW_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizeeastwest", @selector(resizeLeftRightCursor));
break;
- case SDL_SYSTEM_CURSOR_SIZENS:
+ case SDL_SYSTEM_CURSOR_NS_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenorthsouth", @selector(resizeUpDownCursor));
break;
- case SDL_SYSTEM_CURSOR_SIZEALL:
+ case SDL_SYSTEM_CURSOR_MOVE:
nscursor = LoadHiddenSystemCursor(@"move", @selector(closedHandCursor));
break;
- case SDL_SYSTEM_CURSOR_NO:
+ case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
nscursor = [NSCursor operationNotAllowedCursor];
break;
- case SDL_SYSTEM_CURSOR_HAND:
+ case SDL_SYSTEM_CURSOR_POINTER:
nscursor = [NSCursor pointingHandCursor];
break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT:
+ case SDL_SYSTEM_CURSOR_NW_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenorthwestsoutheast", @selector(closedHandCursor));
break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOP:
+ case SDL_SYSTEM_CURSOR_N_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenorthsouth", @selector(resizeUpDownCursor));
break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT:
+ case SDL_SYSTEM_CURSOR_NE_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenortheastsouthwest", @selector(closedHandCursor));
break;
- case SDL_SYSTEM_CURSOR_WINDOW_RIGHT:
+ case SDL_SYSTEM_CURSOR_E_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizeeastwest", @selector(resizeLeftRightCursor));
break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT:
+ case SDL_SYSTEM_CURSOR_SE_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenorthwestsoutheast", @selector(closedHandCursor));
break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOM:
+ case SDL_SYSTEM_CURSOR_S_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenorthsouth", @selector(resizeUpDownCursor));
break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT:
+ case SDL_SYSTEM_CURSOR_SW_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizenortheastsouthwest", @selector(closedHandCursor));
break;
- case SDL_SYSTEM_CURSOR_WINDOW_LEFT:
+ case SDL_SYSTEM_CURSOR_W_RESIZE:
nscursor = LoadHiddenSystemCursor(@"resizeeastwest", @selector(resizeLeftRightCursor));
break;
default:
diff --git a/src/video/haiku/SDL_bvideo.cc b/src/video/haiku/SDL_bvideo.cc
index 9b8f1c949ff67..2b5b170963b5a 100644
--- a/src/video/haiku/SDL_bvideo.cc
+++ b/src/video/haiku/SDL_bvideo.cc
@@ -136,37 +136,38 @@ void HAIKU_DeleteDevice(SDL_VideoDevice * device)
static SDL_Cursor * HAIKU_CreateSystemCursor(SDL_SystemCursor id)
{
- SDL_Cursor *cursor;
BCursorID cursorId = B_CURSOR_ID_SYSTEM_DEFAULT;
switch(id)
{
- default:
- SDL_assert(0);
- return NULL;
- case SDL_SYSTEM_CURSOR_ARROW: cursorId = B_CURSOR_ID_SYSTEM_DEFAULT; break;
- case SDL_SYSTEM_CURSOR_IBEAM: cursorId = B_CURSOR_ID_I_BEAM; break;
- case SDL_SYSTEM_CURSOR_WAIT: cursorId = B_CURSOR_ID_PROGRESS; break;
- case SDL_SYSTEM_CURSOR_CROSSHAIR: cursorId = B_CURSOR_ID_CROSS_HAIR; break;
- case SDL_SYSTEM_CURSOR_WAITARROW: cursorId = B_CURSOR_ID_PROGRESS; break;
- case SDL_SYSTEM_CURSOR_SIZENWSE: cursorId = B_CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST; break;
- case SDL_SYSTEM_CURSOR_SIZENESW: cursorId = B_CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST; break;
- case SDL_SYSTEM_CURSOR_SIZEWE: cursorId = B_CURSOR_ID_RESIZE_EAST_WEST; break;
- case SDL_SYSTEM_CURSOR_SIZENS: cursorId = B_CURSOR_ID_RESIZE_NORTH_SOUTH; break;
- case SDL_SYSTEM_CURSOR_SIZEALL: cursorId = B_CURSOR_ID_MOVE; break;
- case SDL_SYSTEM_CURSOR_NO: cursorId = B_CURSOR_ID_NOT_ALLOWED; break;
- case SDL_SYSTEM_CURSOR_HAND: cursorId = B_CURSOR_ID_FOLLOW_LINK; break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT: cursorId = B_CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST; break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOP: cursorId = B_CURSOR_ID_RESIZE_NORTH_SOUTH; break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT: cursorId = B_CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST; break;
- case SDL_SYSTEM_CURSOR_WINDOW_RIGHT: cursorId = B_CURSOR_ID_RESIZE_EAST_WEST; break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT: cursorId = B_CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST; break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOM: cursorId = B_CURSOR_ID_RESIZE_NORTH_SOUTH; break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT: cursorId = B_CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST; break;
- case SDL_SYSTEM_CURSOR_WINDOW_LEFT: cursorId = B_CURSOR_ID_RESIZE_EAST_WEST; break;
+ #define CURSORCASE(sdlname, bname) case SDL_SYSTEM_CURSOR_##sdlname: cursorId = B_CURSOR_ID_##bname; break
+ CURSORCASE(DEFAULT, SYSTEM_DEFAULT);
+ CURSORCASE(TEXT, I_BEAM);
+ CURSORCASE(WAIT, PROGRESS);
+ CURSORCASE(CROSSHAIR, CROSS_HAIR);
+ CURSORCASE(PROGRESS, PROGRESS);
+ CURSORCASE(NWSE_RESIZE, RESIZE_NORTH_WEST_SOUTH_EAST);
+ CURSORCASE(NESW_RESIZE, RESIZE_NORTH_EAST_SOUTH_WEST);
+ CURSORCASE(EW_RESIZE, RESIZE_EAST_WEST);
+ CURSORCASE(NS_RESIZE, RESIZE_NORTH_SOUTH);
+ CURSORCASE(MOVE, MOVE);
+ CURSORCASE(NOT_ALLOWED, NOT_ALLOWED);
+ CURSORCASE(POINTER, FOLLOW_LINK);
+ CURSORCASE(NW_RESIZE, RESIZE_NORTH_WEST_SOUTH_EAST);
+ CURSORCASE(N_RESIZE, RESIZE_NORTH_SOUTH);
+ CURSORCASE(NE_RESIZE, RESIZE_NORTH_EAST_SOUTH_WEST);
+ CURSORCASE(E_RESIZE, RESIZE_EAST_WEST);
+ CURSORCASE(SE_RESIZE, RESIZE_NORTH_WEST_SOUTH_EAST);
+ CURSORCASE(S_RESIZE, RESIZE_NORTH_SOUTH);
+ CURSORCASE(SW_RESIZE, RESIZE_NORTH_EAST_SOUTH_WEST);
+ CURSORCASE(W_RESIZE, RESIZE_EAST_WEST);
+ #undef CURSORCASE
+ default:
+ SDL_assert(0);
+ return NULL;
}
- cursor = (SDL_Cursor *) SDL_calloc(1, sizeof(*cursor));
+ SDL_Cursor *cursor = (SDL_Cursor *) SDL_calloc(1, sizeof(*cursor));
if (cursor) {
cursor->driverdata = (void *)new BCursor(cursorId);
}
@@ -176,7 +177,7 @@ static SDL_Cursor * HAIKU_CreateSystemCursor(SDL_SystemCursor id)
static SDL_Cursor * HAIKU_CreateDefaultCursor()
{
- return HAIKU_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW);
+ return HAIKU_CreateSystemCursor(SDL_SYSTEM_CURSOR_DEFAULT);
}
static void HAIKU_FreeCursor(SDL_Cursor * cursor)
diff --git a/src/video/wayland/SDL_waylandmouse.c b/src/video/wayland/SDL_waylandmouse.c
index 5f8379409d50d..23f5c7cff27d4 100644
--- a/src/video/wayland/SDL_waylandmouse.c
+++ b/src/video/wayland/SDL_waylandmouse.c
@@ -486,7 +486,7 @@ static SDL_Cursor *Wayland_CreateSystemCursor(SDL_SystemCursor id)
static SDL_Cursor *Wayland_CreateDefaultCursor(void)
{
- return Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW);
+ return Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_DEFAULT);
}
static void Wayland_FreeCursorData(struct Wayland_CursorData *d)
@@ -529,10 +529,10 @@ static void Wayland_SetSystemCursorShape(struct SDL_WaylandInput *input, SDL_Sys
Uint32 shape;
switch (id) {
- case SDL_SYSTEM_CURSOR_ARROW:
+ case SDL_SYSTEM_CURSOR_DEFAULT:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_DEFAULT;
break;
- case SDL_SYSTEM_CURSOR_IBEAM:
+ case SDL_SYSTEM_CURSOR_TEXT:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_TEXT;
break;
case SDL_SYSTEM_CURSOR_WAIT:
@@ -541,52 +541,52 @@ static void Wayland_SetSystemCursorShape(struct SDL_WaylandInput *input, SDL_Sys
case SDL_SYSTEM_CURSOR_CROSSHAIR:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_CROSSHAIR;
break;
- case SDL_SYSTEM_CURSOR_WAITARROW:
+ case SDL_SYSTEM_CURSOR_PROGRESS:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_PROGRESS;
break;
- case SDL_SYSTEM_CURSOR_SIZENWSE:
+ case SDL_SYSTEM_CURSOR_NWSE_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NWSE_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_SIZENESW:
+ case SDL_SYSTEM_CURSOR_NESW_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NESW_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_SIZEWE:
+ case SDL_SYSTEM_CURSOR_EW_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_EW_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_SIZENS:
+ case SDL_SYSTEM_CURSOR_NS_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NS_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_SIZEALL:
+ case SDL_SYSTEM_CURSOR_MOVE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_ALL_SCROLL;
break;
- case SDL_SYSTEM_CURSOR_NO:
+ case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NOT_ALLOWED;
break;
- case SDL_SYSTEM_CURSOR_HAND:
+ case SDL_SYSTEM_CURSOR_POINTER:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_POINTER;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT:
+ case SDL_SYSTEM_CURSOR_NW_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NW_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOP:
+ case SDL_SYSTEM_CURSOR_N_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_N_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT:
+ case SDL_SYSTEM_CURSOR_NE_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_NE_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_RIGHT:
+ case SDL_SYSTEM_CURSOR_E_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_E_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT:
+ case SDL_SYSTEM_CURSOR_SE_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_SE_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOM:
+ case SDL_SYSTEM_CURSOR_S_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_S_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT:
+ case SDL_SYSTEM_CURSOR_SW_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_SW_RESIZE;
break;
- case SDL_SYSTEM_CURSOR_WINDOW_LEFT:
+ case SDL_SYSTEM_CURSOR_W_RESIZE:
shape = WP_CURSOR_SHAPE_DEVICE_V1_SHAPE_W_RESIZE;
break;
default:
@@ -880,34 +880,34 @@ void Wayland_InitMouse(void)
while (r <= SDL_HITTEST_RESIZE_LEFT) {
switch (r) {
case SDL_HITTEST_NORMAL:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_DEFAULT);
break;
case SDL_HITTEST_DRAGGABLE:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_DEFAULT);
break;
case SDL_HITTEST_RESIZE_TOPLEFT:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_NW_RESIZE);
break;
case SDL_HITTEST_RESIZE_TOP:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_TOP);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_N_RESIZE);
break;
case SDL_HITTEST_RESIZE_TOPRIGHT:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_NE_RESIZE);
break;
case SDL_HITTEST_RESIZE_RIGHT:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_RIGHT);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_E_RESIZE);
break;
case SDL_HITTEST_RESIZE_BOTTOMRIGHT:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_SE_RESIZE);
break;
case SDL_HITTEST_RESIZE_BOTTOM:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_BOTTOM);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_S_RESIZE);
break;
case SDL_HITTEST_RESIZE_BOTTOMLEFT:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_SW_RESIZE);
break;
case SDL_HITTEST_RESIZE_LEFT:
- sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_WINDOW_LEFT);
+ sys_cursors[r] = Wayland_CreateSystemCursor(SDL_SYSTEM_CURSOR_W_RESIZE);
break;
}
r++;
diff --git a/src/video/windows/SDL_windowsmouse.c b/src/video/windows/SDL_windowsmouse.c
index eea807b781bb8..42a5e9923618a 100644
--- a/src/video/windows/SDL_windowsmouse.c
+++ b/src/video/windows/SDL_windowsmouse.c
@@ -215,10 +215,10 @@ static SDL_Cursor *WIN_CreateSystemCursor(SDL_SystemCursor id)
default:
SDL_assert(0);
return NULL;
- case SDL_SYSTEM_CURSOR_ARROW:
+ case SDL_SYSTEM_CURSOR_DEFAULT:
name = IDC_ARROW;
break;
- case SDL_SYSTEM_CURSOR_IBEAM:
+ case SDL_SYSTEM_CURSOR_TEXT:
name = IDC_IBEAM;
break;
case SDL_SYSTEM_CURSOR_WAIT:
@@ -227,52 +227,52 @@ static SDL_Cursor *WIN_CreateSystemCursor(SDL_SystemCursor id)
case SDL_SYSTEM_CURSOR_CROSSHAIR:
name = IDC_CROSS;
break;
- case SDL_SYSTEM_CURSOR_WAITARROW:
+ case SDL_SYSTEM_CURSOR_PROGRESS:
name = IDC_WAIT;
break;
- case SDL_SYSTEM_CURSOR_SIZENWSE:
+ case SDL_SYSTEM_CURSOR_NWSE_RESIZE:
name = IDC_SIZENWSE;
break;
- case SDL_SYSTEM_CURSOR_SIZENESW:
+ case SDL_SYSTEM_CURSOR_NESW_RESIZE:
name = IDC_SIZENESW;
break;
- case SDL_SYSTEM_CURSOR_SIZEWE:
+ case SDL_SYSTEM_CURSOR_EW_RESIZE:
name = IDC_SIZEWE;
break;
- case SDL_SYSTEM_CURSOR_SIZENS:
+ case SDL_SYSTEM_CURSOR_NS_RESIZE:
name = IDC_SIZENS;
break;
- case SDL_SYSTEM_CURSOR_SIZEALL:
+ case SDL_SYSTEM_CURSOR_MOVE:
name = IDC_SIZEALL;
break;
- case SDL_SYSTEM_CURSOR_NO:
+ case SDL_SYSTEM_CURSOR_NOT_ALLOWED:
name = IDC_NO;
break;
- case SDL_SYSTEM_CURSOR_HAND:
+ case SDL_SYSTEM_CURSOR_POINTER:
name = IDC_HAND;
break;
- c
(Patch may be truncated, please check the link at the top of this post.)