cursor: add cursor support on Windows.

@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Vincent Torri 2015-10-19 20:43:36 +02:00 committed by Cedric BAIL
parent 333ff6d481
commit 7728ab47c0
1 changed files with 127 additions and 87 deletions

View File

@ -15,6 +15,9 @@
#ifdef HAVE_ELEMENTARY_COCOA
# include <Ecore_Cocoa_Cursor.h>
#endif
#ifdef HAVE_ELEMENTARY_WIN32
#include <Ecore_Win32.h>
#endif
#define _cursor_key "_elm_cursor"
@ -22,7 +25,7 @@ struct _Cursor_Id
{
const char *name;
#if defined(HAVE_ELEMENTARY_X) || defined(HAVE_ELEMENTARY_COCOA)
#if defined(HAVE_ELEMENTARY_X) || defined(HAVE_ELEMENTARY_COCOA) || defined(HAVE_ELEMENTARY_WIN32)
int id; /* For X */
int cid; /* For Cocoa */
#endif
@ -30,98 +33,98 @@ struct _Cursor_Id
#if defined(HAVE_ELEMENTARY_X)
# if defined(HAVE_ELEMENTARY_COCOA)
# define CURSOR(_name, _id, _cid) {_name, _id, _cid}
# define CURSOR(_name, _id, _cid) {_name, ECORE_X_CURSOR_##_id, _cid}
# else
# define CURSOR(_name, _id, _cid) { _name, _id, -1 }
# define CURSOR(_name, _id, _cid) { _name, ECORE_X_CURSOR_##_id, -1 }
# endif
#else
# if defined(HAVE_ELEMENTARY_COCOA)
#elif defined(HAVE_ELEMENTARY_COCOA)
# define CURSOR(_name, _id, _cid) {_name, -1, _cid}
# else
#elif defined(HAVE_ELEMENTARY_WIN32)
# define CURSOR(_name, _id, _cid) {_name, ECORE_WIN32_CURSOR_X11_SHAPE_##_xid, -1 }
#else
# define CURSOR(_name, _id, _cid) { _name }
# endif
#endif
/* Please keep order in sync with Ecore_X_Cursor.h values! */
struct _Cursor_Id _cursors[] =
{
CURSOR(ELM_CURSOR_X , ECORE_X_CURSOR_X , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_ARROW , ECORE_X_CURSOR_ARROW , ECORE_COCOA_CURSOR_ARROW),
CURSOR(ELM_CURSOR_BASED_ARROW_DOWN , ECORE_X_CURSOR_BASED_ARROW_DOWN , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BASED_ARROW_UP , ECORE_X_CURSOR_UP , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOAT , ECORE_X_CURSOR_BOAT , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOGOSITY , ECORE_X_CURSOR_BOGOSITY , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOTTOM_LEFT_CORNER , ECORE_X_CURSOR_BOTTOM_LEFT_CORNER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOTTOM_RIGHT_CORNER, ECORE_X_CURSOR_BOTTOM_RIGHT_CORNER, ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOTTOM_SIDE , ECORE_X_CURSOR_BOTTOM_SIDE , ECORE_COCOA_CURSOR_RESIZE_DOWN),
CURSOR(ELM_CURSOR_BOTTOM_TEE , ECORE_X_CURSOR_BOTTOM_TEE , ECORE_COCOA_CURSOR_RESIZE_DOWN),
CURSOR(ELM_CURSOR_BOX_SPIRAL , ECORE_X_CURSOR_BOX_SPIRAL , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CENTER_PTR , ECORE_X_CURSOR_CENTER_PTR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CIRCLE , ECORE_X_CURSOR_CIRCLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CLOCK , ECORE_X_CURSOR_CLOCK , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_COFFEE_MUG , ECORE_X_CURSOR_COFFEE_MUG , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CROSS , ECORE_X_CURSOR_CROSS , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_CROSS_REVERSE , ECORE_X_CURSOR_CROSS_REVERSE , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_CROSSHAIR , ECORE_X_CURSOR_CROSSHAIR , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_DIAMOND_CROSS , ECORE_X_CURSOR_DIAMOND_CROSS , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DOT , ECORE_X_CURSOR_DOT , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DOT_BOX_MASK , ECORE_X_CURSOR_DOT_BOX_MASK , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DOUBLE_ARROW , ECORE_X_CURSOR_DOUBLE_ARROW , ECORE_COCOA_CURSOR_RESIZE_UP_DOWN),
CURSOR(ELM_CURSOR_DRAFT_LARGE , ECORE_X_CURSOR_DRAFT_LARGE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DRAFT_SMALL , ECORE_X_CURSOR_DRAFT_SMALL , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DRAPED_BOX , ECORE_X_CURSOR_DRAPED_BOX , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_EXCHANGE , ECORE_X_CURSOR_EXCHANGE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_FLEUR , ECORE_X_CURSOR_FLEUR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_GOBBLER , ECORE_X_CURSOR_GOBBLER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_GUMBY , ECORE_X_CURSOR_GUMBY , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_HAND1 , ECORE_X_CURSOR_HAND1 , ECORE_COCOA_CURSOR_POINTING_HAND),
CURSOR(ELM_CURSOR_HAND2 , ECORE_X_CURSOR_HAND2 , ECORE_COCOA_CURSOR_POINTING_HAND),
CURSOR(ELM_CURSOR_HEART , ECORE_X_CURSOR_HEART , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_ICON , ECORE_X_CURSOR_ICON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_IRON_CROSS , ECORE_X_CURSOR_IRON_CROSS , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_LEFT_PTR , ECORE_X_CURSOR_LEFT_PTR , ECORE_COCOA_CURSOR_ARROW),
CURSOR(ELM_CURSOR_LEFT_SIDE , ECORE_X_CURSOR_LEFT_SIDE , ECORE_COCOA_CURSOR_RESIZE_LEFT),
CURSOR(ELM_CURSOR_LEFT_TEE , ECORE_X_CURSOR_LEFT_TEE , ECORE_COCOA_CURSOR_RESIZE_LEFT),
CURSOR(ELM_CURSOR_LEFTBUTTON , ECORE_X_CURSOR_LEFTBUTTON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_LL_ANGLE , ECORE_X_CURSOR_LL_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_LR_ANGLE , ECORE_X_CURSOR_LR_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_MAN , ECORE_X_CURSOR_MAN , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_MIDDLEBUTTON , ECORE_X_CURSOR_MIDDLEBUTTON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_MOUSE , ECORE_X_CURSOR_MOUSE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_PENCIL , ECORE_X_CURSOR_PENCIL , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_PIRATE , ECORE_X_CURSOR_PIRATE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_PLUS , ECORE_X_CURSOR_PLUS , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_QUESTION_ARROW , ECORE_X_CURSOR_QUESTION_ARROW , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_RIGHT_PTR , ECORE_X_CURSOR_RIGHT_PTR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_RIGHT_SIDE , ECORE_X_CURSOR_RIGHT_SIDE , ECORE_COCOA_CURSOR_RESIZE_RIGHT),
CURSOR(ELM_CURSOR_RIGHT_TEE , ECORE_X_CURSOR_RIGHT_TEE , ECORE_COCOA_CURSOR_RESIZE_RIGHT),
CURSOR(ELM_CURSOR_RIGHTBUTTON , ECORE_X_CURSOR_RIGHTBUTTON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_RTL_LOGO , ECORE_X_CURSOR_RTL_LOGO , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SAILBOAT , ECORE_X_CURSOR_SAILBOAT , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SB_DOWN_ARROW , ECORE_X_CURSOR_SB_DOWN_ARROW , ECORE_COCOA_CURSOR_RESIZE_DOWN),
CURSOR(ELM_CURSOR_SB_H_DOUBLE_ARROW , ECORE_X_CURSOR_SB_H_DOUBLE_ARROW , ECORE_COCOA_CURSOR_RESIZE_LEFT_RIGHT),
CURSOR(ELM_CURSOR_SB_LEFT_ARROW , ECORE_X_CURSOR_SB_LEFT_ARROW , ECORE_COCOA_CURSOR_RESIZE_LEFT),
CURSOR(ELM_CURSOR_SB_RIGHT_ARROW , ECORE_X_CURSOR_SB_RIGHT_ARROW , ECORE_COCOA_CURSOR_RESIZE_RIGHT),
CURSOR(ELM_CURSOR_SB_UP_ARROW , ECORE_X_CURSOR_SB_UP_ARROW , ECORE_COCOA_CURSOR_RESIZE_UP),
CURSOR(ELM_CURSOR_SB_V_DOUBLE_ARROW , ECORE_X_CURSOR_SB_V_DOUBLE_ARROW , ECORE_COCOA_CURSOR_RESIZE_UP_DOWN),
CURSOR(ELM_CURSOR_SHUTTLE , ECORE_X_CURSOR_SHUTTLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SIZING , ECORE_X_CURSOR_SIZING , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SPIDER , ECORE_X_CURSOR_SPIDER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SPRAYCAN , ECORE_X_CURSOR_SPRAYCAN , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_STAR , ECORE_X_CURSOR_STAR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TARGET , ECORE_X_CURSOR_TARGET , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TCROSS , ECORE_X_CURSOR_TCROSS , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_TOP_LEFT_ARROW , ECORE_X_CURSOR_TOP_LEFT_ARROW , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_LEFT_CORNER , ECORE_X_CURSOR_TOP_LEFT_CORNER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_RIGHT_CORNER , ECORE_X_CURSOR_TOP_RIGHT_CORNER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_SIDE , ECORE_X_CURSOR_TOP_SIDE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_TEE , ECORE_X_CURSOR_TOP_TEE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TREK , ECORE_X_CURSOR_TREK , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_UL_ANGLE , ECORE_X_CURSOR_UL_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_UMBRELLA , ECORE_X_CURSOR_UMBRELLA , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_UR_ANGLE , ECORE_X_CURSOR_UR_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_WATCH , ECORE_X_CURSOR_WATCH , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_XTERM , ECORE_X_CURSOR_XTERM , ECORE_COCOA_CURSOR_IBEAM)
CURSOR(ELM_CURSOR_X , X , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_ARROW , ARROW , ECORE_COCOA_CURSOR_ARROW),
CURSOR(ELM_CURSOR_BASED_ARROW_DOWN , BASED_ARROW_DOWN , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BASED_ARROW_UP , UP , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOAT , BOAT , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOGOSITY , BOGOSITY , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOTTOM_LEFT_CORNER , BOTTOM_LEFT_CORNER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOTTOM_RIGHT_CORNER, BOTTOM_RIGHT_CORNER, ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_BOTTOM_SIDE , BOTTOM_SIDE , ECORE_COCOA_CURSOR_RESIZE_DOWN),
CURSOR(ELM_CURSOR_BOTTOM_TEE , BOTTOM_TEE , ECORE_COCOA_CURSOR_RESIZE_DOWN),
CURSOR(ELM_CURSOR_BOX_SPIRAL , BOX_SPIRAL , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CENTER_PTR , CENTER_PTR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CIRCLE , CIRCLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CLOCK , CLOCK , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_COFFEE_MUG , COFFEE_MUG , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_CROSS , CROSS , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_CROSS_REVERSE , CROSS_REVERSE , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_CROSSHAIR , CROSSHAIR , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_DIAMOND_CROSS , DIAMOND_CROSS , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DOT , DOT , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DOT_BOX_MASK , DOT_BOX_MASK , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DOUBLE_ARROW , DOUBLE_ARROW , ECORE_COCOA_CURSOR_RESIZE_UP_DOWN),
CURSOR(ELM_CURSOR_DRAFT_LARGE , DRAFT_LARGE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DRAFT_SMALL , DRAFT_SMALL , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_DRAPED_BOX , DRAPED_BOX , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_EXCHANGE , EXCHANGE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_FLEUR , FLEUR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_GOBBLER , GOBBLER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_GUMBY , GUMBY , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_HAND1 , HAND1 , ECORE_COCOA_CURSOR_POINTING_HAND),
CURSOR(ELM_CURSOR_HAND2 , HAND2 , ECORE_COCOA_CURSOR_POINTING_HAND),
CURSOR(ELM_CURSOR_HEART , HEART , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_ICON , ICON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_IRON_CROSS , IRON_CROSS , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_LEFT_PTR , LEFT_PTR , ECORE_COCOA_CURSOR_ARROW),
CURSOR(ELM_CURSOR_LEFT_SIDE , LEFT_SIDE , ECORE_COCOA_CURSOR_RESIZE_LEFT),
CURSOR(ELM_CURSOR_LEFT_TEE , LEFT_TEE , ECORE_COCOA_CURSOR_RESIZE_LEFT),
CURSOR(ELM_CURSOR_LEFTBUTTON , LEFTBUTTON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_LL_ANGLE , LL_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_LR_ANGLE , LR_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_MAN , MAN , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_MIDDLEBUTTON , MIDDLEBUTTON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_MOUSE , MOUSE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_PENCIL , PENCIL , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_PIRATE , PIRATE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_PLUS , PLUS , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_QUESTION_ARROW , QUESTION_ARROW , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_RIGHT_PTR , RIGHT_PTR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_RIGHT_SIDE , RIGHT_SIDE , ECORE_COCOA_CURSOR_RESIZE_RIGHT),
CURSOR(ELM_CURSOR_RIGHT_TEE , RIGHT_TEE , ECORE_COCOA_CURSOR_RESIZE_RIGHT),
CURSOR(ELM_CURSOR_RIGHTBUTTON , RIGHTBUTTON , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_RTL_LOGO , RTL_LOGO , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SAILBOAT , SAILBOAT , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SB_DOWN_ARROW , SB_DOWN_ARROW , ECORE_COCOA_CURSOR_RESIZE_DOWN),
CURSOR(ELM_CURSOR_SB_H_DOUBLE_ARROW , SB_H_DOUBLE_ARROW , ECORE_COCOA_CURSOR_RESIZE_LEFT_RIGHT),
CURSOR(ELM_CURSOR_SB_LEFT_ARROW , SB_LEFT_ARROW , ECORE_COCOA_CURSOR_RESIZE_LEFT),
CURSOR(ELM_CURSOR_SB_RIGHT_ARROW , SB_RIGHT_ARROW , ECORE_COCOA_CURSOR_RESIZE_RIGHT),
CURSOR(ELM_CURSOR_SB_UP_ARROW , SB_UP_ARROW , ECORE_COCOA_CURSOR_RESIZE_UP),
CURSOR(ELM_CURSOR_SB_V_DOUBLE_ARROW , SB_V_DOUBLE_ARROW , ECORE_COCOA_CURSOR_RESIZE_UP_DOWN),
CURSOR(ELM_CURSOR_SHUTTLE , SHUTTLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SIZING , SIZING , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SPIDER , SPIDER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_SPRAYCAN , SPRAYCAN , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_STAR , STAR , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TARGET , TARGET , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TCROSS , TCROSS , ECORE_COCOA_CURSOR_CROSSHAIR),
CURSOR(ELM_CURSOR_TOP_LEFT_ARROW , TOP_LEFT_ARROW , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_LEFT_CORNER , TOP_LEFT_CORNER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_RIGHT_CORNER , TOP_RIGHT_CORNER , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_SIDE , TOP_SIDE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TOP_TEE , TOP_TEE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_TREK , TREK , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_UL_ANGLE , UL_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_UMBRELLA , UMBRELLA , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_UR_ANGLE , UR_ANGLE , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_WATCH , WATCH , ECORE_COCOA_CURSOR_DEFAULT),
CURSOR(ELM_CURSOR_XTERM , XTERM , ECORE_COCOA_CURSOR_IBEAM)
};
static const int _cursors_count = sizeof(_cursors)/sizeof(struct _Cursor_Id);
@ -163,6 +166,12 @@ struct _Elm_Cursor
Ecore_Wl2_Window *win;
} wl;
#endif
#ifdef HAVE_ELEMENTARY_WIN32
struct {
Ecore_Win32_Cursor *cursor;
Ecore_Win32_Window *win;
} win32;
#endif
#ifdef HAVE_ELEMENTARY_COCOA
struct {
@ -311,6 +320,10 @@ _elm_cursor_set(Elm_Cursor *cur)
ecore_cocoa_window_cursor_set(cur->cocoa.win, cur->cocoa.cursor);
#endif
#ifdef HAVE_ELEMENTARY_WIN32
if (cur->win32.win)
ecore_win32_window_cursor_set(cur->win32.win, cur->win32.cursor);
#endif
}
evas_event_thaw(cur->evas);
}
@ -375,6 +388,10 @@ _elm_cursor_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_
ecore_cocoa_window_cursor_set(cur->cocoa.win, ECORE_COCOA_CURSOR_DEFAULT);
#endif
#ifdef HAVE_ELEMENTARY_WIN32
if (cur->win32.win)
ecore_win32_window_cursor_set(cur->win32.win, ecore_win32_cursor_shaped_new(ECORE_WIN32_CURSOR_SHAPE_ARROW));
#endif
}
evas_event_thaw(cur->evas);
}
@ -385,7 +402,7 @@ _elm_cursor_del(void *data EINA_UNUSED, Evas *evas EINA_UNUSED, Evas_Object *obj
elm_object_cursor_unset(obj);
}
#if defined(HAVE_ELEMENTARY_X) || defined(HAVE_ELEMENTARY_COCOA)
#if defined(HAVE_ELEMENTARY_X) || defined(HAVE_ELEMENTARY_COCOA) || defined(HAVE_ELEMENTARY_WIN32)
static int
_elm_cursor_strcmp(const void *data1, const void *data2)
{
@ -435,10 +452,10 @@ _elm_cursor_cur_set(Elm_Cursor *cur)
if (cur->x.win)
{
struct _Cursor_Id *cur_id;
cur_id = bsearch(&(cur->cursor_name), _cursors, _cursors_count,
sizeof(struct _Cursor_Id), _elm_cursor_strcmp);
if (!cur_id)
{
INF("X cursor couldn't be found: %s. Using default.",
@ -471,6 +488,25 @@ _elm_cursor_cur_set(Elm_Cursor *cur)
#ifdef HAVE_ELEMENTARY_WL2
cur->wl.win = elm_win_wl_window_get(top);
#endif
#ifdef HAVE_ELEMENTARY_WIN32
cur->win32.win = elm_win_win32_window_get(top);
if (cur->win32.win)
{
struct _Cursor_Id *cur_id;
cur_id = bsearch(&(cur->cursor_name), _cursors, _cursors_count,
sizeof(struct _Cursor_Id), _elm_cursor_strcmp);
if (!cur_id)
{
INF("Win32 X cursor couldn't be found: %s. Using default.",
cur->cursor_name);
cur->win32.cursor = ecore_win32_cursor_shaped_new(ECORE_WIN32_CURSOR_SHAPE_ARROW);
}
else
cur->win32.cursor = ecore_win32_cursor_x11_shaped_get(cur_id->id);
}
#endif
}
}
@ -599,6 +635,10 @@ elm_object_cursor_unset(Evas_Object *obj)
#ifdef HAVE_ELEMENTARY_WL2
else if (cur->wl.win)
ecore_wl2_window_cursor_from_name_set(cur->wl.win, NULL);
#endif
#ifdef HAVE_ELEMENTARY_WIN32
else
ecore_win32_window_cursor_set(cur->win32.win, ecore_win32_cursor_shaped_new(ECORE_WIN32_CURSOR_SHAPE_ARROW));
#endif
}