Browse Source

Merge pull request #2249 from OTHGMars/MouseCursors

Updates PlatformCursorController to use full set of SDL cursors.
Areloch 7 years ago
parent
commit
83a15ed827

+ 3 - 0
Engine/source/windowManager/platformCursorController.h

@@ -76,6 +76,9 @@ public:
       curResizeNESW,
       curResizeNESW,
       curResizeNWSE,
       curResizeNWSE,
       curHand,
       curHand,
+      curWaitArrow,
+      curNoNo,
+      numPlatformCursors
    };
    };
 
 
 public:
 public:

+ 3 - 2
Engine/source/windowManager/sdl/sdlCursorController.cpp

@@ -41,7 +41,8 @@ static struct { U32 id; SDL_SystemCursor resourceID; SDL_Cursor *cursor;} sgCurs
    { PlatformCursorController::curResizeNESW,  SDL_SYSTEM_CURSOR_SIZENESW,    NULL },
    { PlatformCursorController::curResizeNESW,  SDL_SYSTEM_CURSOR_SIZENESW,    NULL },
    { PlatformCursorController::curResizeNWSE,  SDL_SYSTEM_CURSOR_SIZENWSE,    NULL },
    { PlatformCursorController::curResizeNWSE,  SDL_SYSTEM_CURSOR_SIZENWSE,    NULL },
    { PlatformCursorController::curHand,        SDL_SYSTEM_CURSOR_HAND,        NULL },
    { PlatformCursorController::curHand,        SDL_SYSTEM_CURSOR_HAND,        NULL },
-   { 0,                                        SDL_SYSTEM_CURSOR_NO,          NULL },
+   { PlatformCursorController::curWaitArrow,   SDL_SYSTEM_CURSOR_WAITARROW,   NULL },
+   { PlatformCursorController::curNoNo,        SDL_SYSTEM_CURSOR_NO,          NULL },
 };
 };
 
 
 
 
@@ -90,7 +91,7 @@ void PlatformCursorControllerSDL::setCursorShape(U32 cursorID)
 {
 {
    SDL_Cursor* cursor = NULL;
    SDL_Cursor* cursor = NULL;
 
 
-   for(S32 i = 0; sgCursorShapeMap[i].resourceID != SDL_SYSTEM_CURSOR_NO; ++i)
+   for(S32 i = 0; i < numPlatformCursors; ++i)
    {
    {
       if(cursorID == sgCursorShapeMap[i].id)
       if(cursorID == sgCursorShapeMap[i].id)
       {  
       {  

+ 3 - 2
Engine/source/windowManager/win32/win32CursorController.cpp

@@ -43,7 +43,8 @@ static struct { U32 id; LPTSTR resourceID; } sgCursorShapeMap[]=
    { PlatformCursorController::curResizeNESW,  IDC_SIZENESW },
    { PlatformCursorController::curResizeNESW,  IDC_SIZENESW },
    { PlatformCursorController::curResizeNWSE,  IDC_SIZENWSE },
    { PlatformCursorController::curResizeNWSE,  IDC_SIZENWSE },
    { PlatformCursorController::curHand,        IDC_HAND },
    { PlatformCursorController::curHand,        IDC_HAND },
-   { 0,                             0 },
+   { PlatformCursorController::curWaitArrow,   IDC_WAIT },
+   { PlatformCursorController::curNoNo,        IDC_NO },
 };
 };
 
 
 //static const EnumTable::Enums curManagerShapesEnums[] = 
 //static const EnumTable::Enums curManagerShapesEnums[] = 
@@ -129,7 +130,7 @@ void Win32CursorController::setCursorShape(U32 cursorID)
 {
 {
    LPTSTR resourceID = NULL;
    LPTSTR resourceID = NULL;
 
 
-   for(S32 i = 0;sgCursorShapeMap[i].resourceID != NULL;++i)
+   for(S32 i = 0; i < numPlatformCursors; ++i)
    {
    {
       if(cursorID == sgCursorShapeMap[i].id)
       if(cursorID == sgCursorShapeMap[i].id)
       {
       {