forked from enlightenment/efl
parent
f726ca9c6c
commit
7f234266a9
|
@ -11,6 +11,7 @@ enum _Evas_Callback_Type
|
||||||
EVAS_CALLBACK_MOUSE_DOWN, /**< Mouse Button Down Event */
|
EVAS_CALLBACK_MOUSE_DOWN, /**< Mouse Button Down Event */
|
||||||
EVAS_CALLBACK_MOUSE_UP, /**< Mouse Button Up Event */
|
EVAS_CALLBACK_MOUSE_UP, /**< Mouse Button Up Event */
|
||||||
EVAS_CALLBACK_MOUSE_MOVE, /**< Mouse Move Event */
|
EVAS_CALLBACK_MOUSE_MOVE, /**< Mouse Move Event */
|
||||||
|
EVAS_CALLBACK_MOUSE_WHEEL, /**< Mouse Wheel Event */
|
||||||
EVAS_CALLBACK_FREE, /**< Object Being Freed */
|
EVAS_CALLBACK_FREE, /**< Object Being Freed */
|
||||||
EVAS_CALLBACK_KEY_DOWN, /**< Key Press Event */
|
EVAS_CALLBACK_KEY_DOWN, /**< Key Press Event */
|
||||||
EVAS_CALLBACK_KEY_UP, /**< Key Release Event */
|
EVAS_CALLBACK_KEY_UP, /**< Key Release Event */
|
||||||
|
@ -63,6 +64,7 @@ typedef struct _Evas_Event_Mouse_Up Evas_Event_Mouse_Up; /**< Event structure
|
||||||
typedef struct _Evas_Event_Mouse_In Evas_Event_Mouse_In; /**< Event structure for #EVAS_CALLBACK_MOUSE_IN event callbacks */
|
typedef struct _Evas_Event_Mouse_In Evas_Event_Mouse_In; /**< Event structure for #EVAS_CALLBACK_MOUSE_IN event callbacks */
|
||||||
typedef struct _Evas_Event_Mouse_Out Evas_Event_Mouse_Out; /**< Event structure for #EVAS_CALLBACK_MOUSE_OUT event callbacks */
|
typedef struct _Evas_Event_Mouse_Out Evas_Event_Mouse_Out; /**< Event structure for #EVAS_CALLBACK_MOUSE_OUT event callbacks */
|
||||||
typedef struct _Evas_Event_Mouse_Move Evas_Event_Mouse_Move; /**< Event structure for #EVAS_CALLBACK_MOUSE_MOVE event callbacks */
|
typedef struct _Evas_Event_Mouse_Move Evas_Event_Mouse_Move; /**< Event structure for #EVAS_CALLBACK_MOUSE_MOVE event callbacks */
|
||||||
|
typedef struct _Evas_Event_Mouse_Wheel Evas_Event_Mouse_Wheel; /**< Event structure for #EVAS_CALLBACK_MOUSE_WHEEL event callbacks */
|
||||||
typedef struct _Evas_Event_Key_Down Evas_Event_Key_Down; /**< Event structure for #EVAS_CALLBACK_KEY_DOWN event callbacks */
|
typedef struct _Evas_Event_Key_Down Evas_Event_Key_Down; /**< Event structure for #EVAS_CALLBACK_KEY_DOWN event callbacks */
|
||||||
typedef struct _Evas_Event_Key_Up Evas_Event_Key_Up; /**< Event structure for #EVAS_CALLBACK_KEY_UP event callbacks */
|
typedef struct _Evas_Event_Key_Up Evas_Event_Key_Up; /**< Event structure for #EVAS_CALLBACK_KEY_UP event callbacks */
|
||||||
|
|
||||||
|
@ -155,6 +157,24 @@ struct _Evas_Event_Mouse_Move /** Mouse button down event */
|
||||||
Evas_Lock *locks;
|
Evas_Lock *locks;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _Evas_Event_Mouse_Wheel /** Wheel event */
|
||||||
|
{
|
||||||
|
int direction; /* 0 = default up/down wheel FIXME: more wheel types */
|
||||||
|
int z; /* ...,-2,-1 = down, 1,2,... = up */
|
||||||
|
|
||||||
|
struct {
|
||||||
|
int x, y;
|
||||||
|
} output;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
double x, y;
|
||||||
|
} canvas;
|
||||||
|
|
||||||
|
void *data;
|
||||||
|
Evas_Modifier *modifiers;
|
||||||
|
Evas_Lock *locks;
|
||||||
|
};
|
||||||
|
|
||||||
struct _Evas_Event_Key_Down /** Key press event */
|
struct _Evas_Event_Key_Down /** Key press event */
|
||||||
{
|
{
|
||||||
char *keyname; /**< The string name of the key pressed */
|
char *keyname; /**< The string name of the key pressed */
|
||||||
|
@ -381,6 +401,7 @@ extern "C" {
|
||||||
void evas_event_feed_mouse_move_data (Evas *e, int x, int y, const void *data);
|
void evas_event_feed_mouse_move_data (Evas *e, int x, int y, const void *data);
|
||||||
void evas_event_feed_mouse_in_data (Evas *e, const void *data);
|
void evas_event_feed_mouse_in_data (Evas *e, const void *data);
|
||||||
void evas_event_feed_mouse_out_data (Evas *e, const void *data);
|
void evas_event_feed_mouse_out_data (Evas *e, const void *data);
|
||||||
|
void evas_event_feed_mouse_wheel_data (Evas *e, int direction, int z, const void *data);
|
||||||
void evas_event_feed_key_down_data (Evas *e, const char *keyname, const void *data);
|
void evas_event_feed_key_down_data (Evas *e, const char *keyname, const void *data);
|
||||||
void evas_event_feed_key_up_data (Evas *e, const char *keyname, const void *data);
|
void evas_event_feed_key_up_data (Evas *e, const char *keyname, const void *data);
|
||||||
void evas_event_feed_mouse_down (Evas *e, int b);
|
void evas_event_feed_mouse_down (Evas *e, int b);
|
||||||
|
@ -388,6 +409,7 @@ extern "C" {
|
||||||
void evas_event_feed_mouse_move (Evas *e, int x, int y);
|
void evas_event_feed_mouse_move (Evas *e, int x, int y);
|
||||||
void evas_event_feed_mouse_in (Evas *e);
|
void evas_event_feed_mouse_in (Evas *e);
|
||||||
void evas_event_feed_mouse_out (Evas *e);
|
void evas_event_feed_mouse_out (Evas *e);
|
||||||
|
void evas_event_feed_mouse_wheel (Evas *e, int direction, int z);
|
||||||
void evas_event_feed_key_down (Evas *e, const char *keyname);
|
void evas_event_feed_key_down (Evas *e, const char *keyname);
|
||||||
void evas_event_feed_key_up (Evas *e, const char *keyname);
|
void evas_event_feed_key_up (Evas *e, const char *keyname);
|
||||||
|
|
||||||
|
|
|
@ -131,6 +131,9 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
||||||
break;
|
break;
|
||||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||||
l_mod = &(obj->callbacks->move);
|
l_mod = &(obj->callbacks->move);
|
||||||
|
break;
|
||||||
|
case EVAS_CALLBACK_MOUSE_WHEEL:
|
||||||
|
l_mod = &(obj->callbacks->wheel);
|
||||||
break;
|
break;
|
||||||
case EVAS_CALLBACK_FREE:
|
case EVAS_CALLBACK_FREE:
|
||||||
l_mod = &(obj->callbacks->free);
|
l_mod = &(obj->callbacks->free);
|
||||||
|
@ -212,11 +215,11 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
||||||
*
|
*
|
||||||
* The event type @p type to trigger the function mys be one of
|
* The event type @p type to trigger the function mys be one of
|
||||||
* EVAS_CALLBACK_MOUSE_IN, EVAS_CALLBACK_MOUSE_OUT, EVAS_CALLBACK_MOUSE_DOWN,
|
* EVAS_CALLBACK_MOUSE_IN, EVAS_CALLBACK_MOUSE_OUT, EVAS_CALLBACK_MOUSE_DOWN,
|
||||||
* EVAS_CALLBACK_MOUSE_UP, EVAS_CALLBACK_MOUSE_MOVE, EVAS_CALLBACK_FREE,
|
* EVAS_CALLBACK_MOUSE_UP, EVAS_CALLBACK_MOUSE_MOVE, EVAS_CALLBACK_MOUSE_WHEEL,
|
||||||
* EVAS_CALLBACK_KEY_DOWN, EVAS_CALLBACK_KEY_UP, EVAS_CALLBACK_FOCUS_IN,
|
* EVAS_CALLBACK_FREE, EVAS_CALLBACK_KEY_DOWN, EVAS_CALLBACK_KEY_UP,
|
||||||
* EVAS_CALLBACK_FOCUS_OUT, EVAS_CALLBACK_SHOW, EVAS_CALLBACK_HIDE,
|
* EVAS_CALLBACK_FOCUS_IN, EVAS_CALLBACK_FOCUS_OUT, EVAS_CALLBACK_SHOW,
|
||||||
* EVAS_CALLBACK_MOVE, EVAS_CALLBACK_RESIZE or EVAS_CALLBACK_RESTACK. This
|
* EVAS_CALLBACK_HIDE, EVAS_CALLBACK_MOVE, EVAS_CALLBACK_RESIZE or EVAS_CALLBACK_RESTACK.
|
||||||
* determines the kind of event that will trigger the callback to be called.
|
* This determines the kind of event that will trigger the callback to be called.
|
||||||
* The @p event_info pointer passed to the callback will be one of the
|
* The @p event_info pointer passed to the callback will be one of the
|
||||||
* following, depending on the event tiggering it:
|
* following, depending on the event tiggering it:
|
||||||
*
|
*
|
||||||
|
@ -261,7 +264,12 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
||||||
*
|
*
|
||||||
* This event is triggered by the mouse pointer moving while over an object or
|
* This event is triggered by the mouse pointer moving while over an object or
|
||||||
* passively grabbed to an object.
|
* passively grabbed to an object.
|
||||||
*
|
*
|
||||||
|
* EVAS_CALLBACK_MOUSE_WHEEL: event_info = pointer to Evas_Event_Mouse_Wheel
|
||||||
|
*
|
||||||
|
* This event is triggered by the mouse wheel being rolled while over an object
|
||||||
|
* or passively grabbed to an object.
|
||||||
|
*
|
||||||
* EVAS_CALLBACK_FREE: event_info = NULL
|
* EVAS_CALLBACK_FREE: event_info = NULL
|
||||||
*
|
*
|
||||||
* This event is triggered just before Evas is about to free all memory used
|
* This event is triggered just before Evas is about to free all memory used
|
||||||
|
@ -375,6 +383,9 @@ evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, void (
|
||||||
break;
|
break;
|
||||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||||
l_mod = &(obj->callbacks->move);
|
l_mod = &(obj->callbacks->move);
|
||||||
|
break;
|
||||||
|
case EVAS_CALLBACK_MOUSE_WHEEL:
|
||||||
|
l_mod = &(obj->callbacks->wheel);
|
||||||
break;
|
break;
|
||||||
case EVAS_CALLBACK_FREE:
|
case EVAS_CALLBACK_FREE:
|
||||||
l_mod = &(obj->callbacks->free);
|
l_mod = &(obj->callbacks->free);
|
||||||
|
@ -467,6 +478,9 @@ evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, void (
|
||||||
break;
|
break;
|
||||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||||
l_mod = &(obj->callbacks->move);
|
l_mod = &(obj->callbacks->move);
|
||||||
|
break;
|
||||||
|
case EVAS_CALLBACK_MOUSE_WHEEL:
|
||||||
|
l_mod = &(obj->callbacks->wheel);
|
||||||
break;
|
break;
|
||||||
case EVAS_CALLBACK_FREE:
|
case EVAS_CALLBACK_FREE:
|
||||||
l_mod = &(obj->callbacks->free);
|
l_mod = &(obj->callbacks->free);
|
||||||
|
|
|
@ -141,6 +141,39 @@ evas_event_feed_mouse_down_data(Evas *e, int b, const void *data)
|
||||||
if (copy) copy = evas_list_free(copy);
|
if (copy) copy = evas_list_free(copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evas_event_feed_mouse_wheel_data(Evas *e, int direction, int z, const void *data)
|
||||||
|
{
|
||||||
|
Evas_List *l, *copy;
|
||||||
|
Evas_Object *obj;
|
||||||
|
|
||||||
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
|
return;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
|
||||||
|
copy = evas_event_list_copy(e->pointer.object.in);
|
||||||
|
|
||||||
|
for (l = copy; l; l = l->next)
|
||||||
|
{
|
||||||
|
Evas_Event_Mouse_Wheel ev;
|
||||||
|
Evas_Object *obj = l->data;
|
||||||
|
|
||||||
|
ev.direction = direction;
|
||||||
|
ev.z = z;
|
||||||
|
ev.output.x = e->pointer.x;
|
||||||
|
ev.output.y = e->pointer.y;
|
||||||
|
ev.canvas.x = e->pointer.canvas_x;
|
||||||
|
ev.canvas.y = e->pointer.canvas_y;
|
||||||
|
ev.data = (void *) data;
|
||||||
|
ev.modifiers = &(e->modifiers);
|
||||||
|
ev.locks = &(e->locks);
|
||||||
|
|
||||||
|
evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_WHEEL, &ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To be documented.
|
* To be documented.
|
||||||
*
|
*
|
||||||
|
@ -626,6 +659,18 @@ evas_event_feed_mouse_out(Evas *e)
|
||||||
evas_event_feed_mouse_out_data(e, NULL);
|
evas_event_feed_mouse_out_data(e, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To be documented.
|
||||||
|
*
|
||||||
|
* FIXME: To be fixed.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
evas_event_feed_mouse_wheel(Evas *e, int direction, int z)
|
||||||
|
{
|
||||||
|
evas_event_feed_mouse_wheel_data(e, direction, z, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To be documented.
|
* To be documented.
|
||||||
*
|
*
|
||||||
|
|
|
@ -20,20 +20,21 @@
|
||||||
typedef enum _Evas_Callback_Type
|
typedef enum _Evas_Callback_Type
|
||||||
{
|
{
|
||||||
EVAS_CALLBACK_MOUSE_IN,
|
EVAS_CALLBACK_MOUSE_IN,
|
||||||
EVAS_CALLBACK_MOUSE_OUT,
|
EVAS_CALLBACK_MOUSE_OUT,
|
||||||
EVAS_CALLBACK_MOUSE_DOWN,
|
EVAS_CALLBACK_MOUSE_DOWN,
|
||||||
EVAS_CALLBACK_MOUSE_UP,
|
EVAS_CALLBACK_MOUSE_UP,
|
||||||
EVAS_CALLBACK_MOUSE_MOVE,
|
EVAS_CALLBACK_MOUSE_MOVE,
|
||||||
EVAS_CALLBACK_FREE,
|
EVAS_CALLBACK_MOUSE_WHEEL,
|
||||||
EVAS_CALLBACK_KEY_DOWN,
|
EVAS_CALLBACK_FREE,
|
||||||
EVAS_CALLBACK_KEY_UP,
|
EVAS_CALLBACK_KEY_DOWN,
|
||||||
EVAS_CALLBACK_FOCUS_IN,
|
EVAS_CALLBACK_KEY_UP,
|
||||||
EVAS_CALLBACK_FOCUS_OUT,
|
EVAS_CALLBACK_FOCUS_IN,
|
||||||
EVAS_CALLBACK_SHOW,
|
EVAS_CALLBACK_FOCUS_OUT,
|
||||||
EVAS_CALLBACK_HIDE,
|
EVAS_CALLBACK_SHOW,
|
||||||
EVAS_CALLBACK_MOVE,
|
EVAS_CALLBACK_HIDE,
|
||||||
EVAS_CALLBACK_RESIZE,
|
EVAS_CALLBACK_MOVE,
|
||||||
EVAS_CALLBACK_RESTACK
|
EVAS_CALLBACK_RESIZE,
|
||||||
|
EVAS_CALLBACK_RESTACK
|
||||||
} Evas_Callback_Type;
|
} Evas_Callback_Type;
|
||||||
|
|
||||||
typedef struct _Evas_Rectangle Evas_Rectangle;
|
typedef struct _Evas_Rectangle Evas_Rectangle;
|
||||||
|
@ -227,6 +228,7 @@ struct _Evas_Callbacks
|
||||||
Evas_Object_List *move;
|
Evas_Object_List *move;
|
||||||
Evas_Object_List *in;
|
Evas_Object_List *in;
|
||||||
Evas_Object_List *out;
|
Evas_Object_List *out;
|
||||||
|
Evas_Object_List *wheel;
|
||||||
Evas_Object_List *key_down;
|
Evas_Object_List *key_down;
|
||||||
Evas_Object_List *key_up;
|
Evas_Object_List *key_up;
|
||||||
Evas_Object_List *free;
|
Evas_Object_List *free;
|
||||||
|
|
Loading…
Reference in New Issue