Add more mouse cursor types
This commit is contained in:
@@ -21,6 +21,8 @@ class Mouse {
|
||||
|
||||
if (!__hidden) {
|
||||
|
||||
__hidden = true;
|
||||
|
||||
#if (js && html5)
|
||||
|
||||
for (window in Application.__instance.windows) {
|
||||
@@ -35,8 +37,6 @@ class Mouse {
|
||||
|
||||
#end
|
||||
|
||||
__hidden = true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -46,6 +46,8 @@ class Mouse {
|
||||
|
||||
if (__hidden) {
|
||||
|
||||
__hidden = false;
|
||||
|
||||
#if (js && html5)
|
||||
|
||||
var cacheValue = __cursor;
|
||||
@@ -58,8 +60,6 @@ class Mouse {
|
||||
|
||||
#end
|
||||
|
||||
__hidden = false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -92,9 +92,18 @@ class Mouse {
|
||||
|
||||
window.element.style.cursor = switch (value) {
|
||||
|
||||
case ARROW: "default";
|
||||
case CROSSHAIR: "crosshair";
|
||||
case MOVE: "move";
|
||||
case POINTER: "pointer";
|
||||
case RESIZE_NESW: "nesw-resize";
|
||||
case RESIZE_NS: "ns-resize";
|
||||
case RESIZE_NWSE: "nwse-resize";
|
||||
case RESIZE_WE: "ew-resize";
|
||||
case TEXT: "text";
|
||||
default: "default";
|
||||
case WAIT: "wait";
|
||||
case WAIT_ARROW: "wait";
|
||||
default: "auto";
|
||||
|
||||
}
|
||||
|
||||
@@ -102,11 +111,20 @@ class Mouse {
|
||||
|
||||
#elseif (cpp || neko || nodejs)
|
||||
|
||||
var type = switch (value) {
|
||||
var type:MouseCursorType = switch (value) {
|
||||
|
||||
case POINTER: MouseCursorType.POINTER;
|
||||
case TEXT: MouseCursorType.TEXT;
|
||||
default: MouseCursorType.DEFAULT;
|
||||
case ARROW: ARROW;
|
||||
case CROSSHAIR: CROSSHAIR;
|
||||
case MOVE: MOVE;
|
||||
case POINTER: POINTER;
|
||||
case RESIZE_NESW: RESIZE_NESW;
|
||||
case RESIZE_NS: RESIZE_NS;
|
||||
case RESIZE_NWSE: RESIZE_NWSE;
|
||||
case RESIZE_WE: RESIZE_WE;
|
||||
case TEXT: TEXT;
|
||||
case WAIT: WAIT;
|
||||
case WAIT_ARROW: WAIT_ARROW;
|
||||
default: DEFAULT;
|
||||
|
||||
}
|
||||
|
||||
@@ -137,8 +155,17 @@ class Mouse {
|
||||
|
||||
@:enum private abstract MouseCursorType(Int) {
|
||||
|
||||
var DEFAULT = 0;
|
||||
var POINTER = 1;
|
||||
var TEXT = 2;
|
||||
var ARROW = 0;
|
||||
var CROSSHAIR = 1;
|
||||
var DEFAULT = 2;
|
||||
var MOVE = 3;
|
||||
var POINTER = 4;
|
||||
var RESIZE_NESW = 5;
|
||||
var RESIZE_NS = 6;
|
||||
var RESIZE_NWSE = 7;
|
||||
var RESIZE_WE = 8;
|
||||
var TEXT = 9;
|
||||
var WAIT = 10;
|
||||
var WAIT_ARROW = 11;
|
||||
|
||||
}
|
||||
@@ -3,11 +3,18 @@ package lime.ui;
|
||||
|
||||
enum MouseCursor {
|
||||
|
||||
|
||||
ARROW;
|
||||
CROSSHAIR;
|
||||
DEFAULT;
|
||||
MOVE;
|
||||
POINTER;
|
||||
RESIZE_NESW;
|
||||
RESIZE_NS;
|
||||
RESIZE_NWSE;
|
||||
RESIZE_WE;
|
||||
TEXT;
|
||||
WAIT;
|
||||
WAIT_ARROW;
|
||||
CUSTOM;
|
||||
|
||||
|
||||
}
|
||||
@@ -7,9 +7,18 @@ namespace lime {
|
||||
|
||||
enum MouseCursor {
|
||||
|
||||
DEFAULT,
|
||||
POINTER,
|
||||
TEXT,
|
||||
ARROW,
|
||||
CROSSHAIR,
|
||||
DEFAULT,
|
||||
MOVE,
|
||||
POINTER,
|
||||
RESIZE_NESW,
|
||||
RESIZE_NS,
|
||||
RESIZE_NWSE,
|
||||
RESIZE_WE,
|
||||
TEXT,
|
||||
WAIT,
|
||||
WAIT_ARROW,
|
||||
CUSTOM
|
||||
|
||||
};
|
||||
|
||||
@@ -5,9 +5,18 @@ namespace lime {
|
||||
|
||||
|
||||
MouseCursor Mouse::currentCursor = DEFAULT;
|
||||
SDL_Cursor* SDLMouse::defaultCursor = 0;
|
||||
|
||||
SDL_Cursor* SDLMouse::arrowCursor = 0;
|
||||
SDL_Cursor* SDLMouse::crosshairCursor = 0;
|
||||
SDL_Cursor* SDLMouse::moveCursor = 0;
|
||||
SDL_Cursor* SDLMouse::pointerCursor = 0;
|
||||
SDL_Cursor* SDLMouse::resizeNESWCursor = 0;
|
||||
SDL_Cursor* SDLMouse::resizeNSCursor = 0;
|
||||
SDL_Cursor* SDLMouse::resizeNWSECursor = 0;
|
||||
SDL_Cursor* SDLMouse::resizeWECursor = 0;
|
||||
SDL_Cursor* SDLMouse::textCursor = 0;
|
||||
SDL_Cursor* SDLMouse::waitCursor = 0;
|
||||
SDL_Cursor* SDLMouse::waitArrowCursor = 0;
|
||||
|
||||
|
||||
void Mouse::Hide () {
|
||||
@@ -23,6 +32,28 @@ namespace lime {
|
||||
|
||||
switch (cursor) {
|
||||
|
||||
case CROSSHAIR:
|
||||
|
||||
if (!SDLMouse::crosshairCursor) {
|
||||
|
||||
SDLMouse::crosshairCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_CROSSHAIR);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::crosshairCursor);
|
||||
break;
|
||||
|
||||
case MOVE:
|
||||
|
||||
if (!SDLMouse::moveCursor) {
|
||||
|
||||
SDLMouse::moveCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_SIZEALL);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::moveCursor);
|
||||
break;
|
||||
|
||||
case POINTER:
|
||||
|
||||
if (!SDLMouse::pointerCursor) {
|
||||
@@ -34,6 +65,50 @@ namespace lime {
|
||||
SDL_SetCursor (SDLMouse::pointerCursor);
|
||||
break;
|
||||
|
||||
case RESIZE_NESW:
|
||||
|
||||
if (!SDLMouse::resizeNESWCursor) {
|
||||
|
||||
SDLMouse::resizeNESWCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_SIZENESW);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::resizeNESWCursor);
|
||||
break;
|
||||
|
||||
case RESIZE_NS:
|
||||
|
||||
if (!SDLMouse::resizeNSCursor) {
|
||||
|
||||
SDLMouse::resizeNSCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_SIZENS);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::resizeNSCursor);
|
||||
break;
|
||||
|
||||
case RESIZE_NWSE:
|
||||
|
||||
if (!SDLMouse::resizeNWSECursor) {
|
||||
|
||||
SDLMouse::resizeNWSECursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_SIZENWSE);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::resizeNWSECursor);
|
||||
break;
|
||||
|
||||
case RESIZE_WE:
|
||||
|
||||
if (!SDLMouse::resizeWECursor) {
|
||||
|
||||
SDLMouse::resizeWECursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_SIZEWE);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::resizeWECursor);
|
||||
break;
|
||||
|
||||
case TEXT:
|
||||
|
||||
if (!SDLMouse::textCursor) {
|
||||
@@ -45,15 +120,37 @@ namespace lime {
|
||||
SDL_SetCursor (SDLMouse::textCursor);
|
||||
break;
|
||||
|
||||
default:
|
||||
case WAIT:
|
||||
|
||||
if (!SDLMouse::defaultCursor) {
|
||||
if (!SDLMouse::waitCursor) {
|
||||
|
||||
SDLMouse::defaultCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_ARROW);
|
||||
SDLMouse::waitCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_WAIT);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::defaultCursor);
|
||||
SDL_SetCursor (SDLMouse::waitCursor);
|
||||
break;
|
||||
|
||||
case WAIT_ARROW:
|
||||
|
||||
if (!SDLMouse::waitArrowCursor) {
|
||||
|
||||
SDLMouse::waitArrowCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_WAITARROW);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::waitArrowCursor);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
if (!SDLMouse::arrowCursor) {
|
||||
|
||||
SDLMouse::arrowCursor = SDL_CreateSystemCursor (SDL_SYSTEM_CURSOR_ARROW);
|
||||
|
||||
}
|
||||
|
||||
SDL_SetCursor (SDLMouse::arrowCursor);
|
||||
break;
|
||||
|
||||
}
|
||||
@@ -62,8 +159,6 @@ namespace lime {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -14,9 +14,17 @@ namespace lime {
|
||||
|
||||
public:
|
||||
|
||||
static SDL_Cursor* defaultCursor;
|
||||
static SDL_Cursor* arrowCursor;
|
||||
static SDL_Cursor* crosshairCursor;
|
||||
static SDL_Cursor* moveCursor;
|
||||
static SDL_Cursor* pointerCursor;
|
||||
static SDL_Cursor* resizeNESWCursor;
|
||||
static SDL_Cursor* resizeNSCursor;
|
||||
static SDL_Cursor* resizeNWSECursor;
|
||||
static SDL_Cursor* resizeWECursor;
|
||||
static SDL_Cursor* textCursor;
|
||||
static SDL_Cursor* waitCursor;
|
||||
static SDL_Cursor* waitArrowCursor;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user