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_UP, /**< Mouse Button Up Event */
|
||||
EVAS_CALLBACK_MOUSE_MOVE, /**< Mouse Move Event */
|
||||
EVAS_CALLBACK_MOUSE_WHEEL, /**< Mouse Wheel Event */
|
||||
EVAS_CALLBACK_FREE, /**< Object Being Freed */
|
||||
EVAS_CALLBACK_KEY_DOWN, /**< Key Press 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_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_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_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;
|
||||
};
|
||||
|
||||
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 */
|
||||
{
|
||||
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_in_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_up_data (Evas *e, const char *keyname, const void *data);
|
||||
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_in (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_up (Evas *e, const char *keyname);
|
||||
|
||||
|
|
|
@ -131,6 +131,9 @@ evas_object_event_callback_call(Evas_Object *obj, Evas_Callback_Type type, void
|
|||
break;
|
||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||
l_mod = &(obj->callbacks->move);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_WHEEL:
|
||||
l_mod = &(obj->callbacks->wheel);
|
||||
break;
|
||||
case EVAS_CALLBACK_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
|
||||
* 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_KEY_DOWN, EVAS_CALLBACK_KEY_UP, EVAS_CALLBACK_FOCUS_IN,
|
||||
* EVAS_CALLBACK_FOCUS_OUT, EVAS_CALLBACK_SHOW, EVAS_CALLBACK_HIDE,
|
||||
* EVAS_CALLBACK_MOVE, EVAS_CALLBACK_RESIZE or EVAS_CALLBACK_RESTACK. This
|
||||
* determines the kind of event that will trigger the callback to be called.
|
||||
* EVAS_CALLBACK_MOUSE_UP, EVAS_CALLBACK_MOUSE_MOVE, EVAS_CALLBACK_MOUSE_WHEEL,
|
||||
* EVAS_CALLBACK_FREE, EVAS_CALLBACK_KEY_DOWN, EVAS_CALLBACK_KEY_UP,
|
||||
* EVAS_CALLBACK_FOCUS_IN, EVAS_CALLBACK_FOCUS_OUT, EVAS_CALLBACK_SHOW,
|
||||
* EVAS_CALLBACK_HIDE, EVAS_CALLBACK_MOVE, EVAS_CALLBACK_RESIZE or EVAS_CALLBACK_RESTACK.
|
||||
* 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
|
||||
* following, depending on the event tiggering it:
|
||||
*
|
||||
|
@ -262,6 +265,11 @@ 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
|
||||
* 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
|
||||
*
|
||||
* 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;
|
||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||
l_mod = &(obj->callbacks->move);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_WHEEL:
|
||||
l_mod = &(obj->callbacks->wheel);
|
||||
break;
|
||||
case EVAS_CALLBACK_FREE:
|
||||
l_mod = &(obj->callbacks->free);
|
||||
|
@ -467,6 +478,9 @@ evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, void (
|
|||
break;
|
||||
case EVAS_CALLBACK_MOUSE_MOVE:
|
||||
l_mod = &(obj->callbacks->move);
|
||||
break;
|
||||
case EVAS_CALLBACK_MOUSE_WHEEL:
|
||||
l_mod = &(obj->callbacks->wheel);
|
||||
break;
|
||||
case EVAS_CALLBACK_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);
|
||||
}
|
||||
|
||||
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.
|
||||
*
|
||||
|
@ -626,6 +659,18 @@ evas_event_feed_mouse_out(Evas *e)
|
|||
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.
|
||||
*
|
||||
|
|
|
@ -20,20 +20,21 @@
|
|||
typedef enum _Evas_Callback_Type
|
||||
{
|
||||
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_KEY_DOWN,
|
||||
EVAS_CALLBACK_KEY_UP,
|
||||
EVAS_CALLBACK_FOCUS_IN,
|
||||
EVAS_CALLBACK_FOCUS_OUT,
|
||||
EVAS_CALLBACK_SHOW,
|
||||
EVAS_CALLBACK_HIDE,
|
||||
EVAS_CALLBACK_MOVE,
|
||||
EVAS_CALLBACK_RESIZE,
|
||||
EVAS_CALLBACK_RESTACK
|
||||
EVAS_CALLBACK_MOUSE_OUT,
|
||||
EVAS_CALLBACK_MOUSE_DOWN,
|
||||
EVAS_CALLBACK_MOUSE_UP,
|
||||
EVAS_CALLBACK_MOUSE_MOVE,
|
||||
EVAS_CALLBACK_MOUSE_WHEEL,
|
||||
EVAS_CALLBACK_FREE,
|
||||
EVAS_CALLBACK_KEY_DOWN,
|
||||
EVAS_CALLBACK_KEY_UP,
|
||||
EVAS_CALLBACK_FOCUS_IN,
|
||||
EVAS_CALLBACK_FOCUS_OUT,
|
||||
EVAS_CALLBACK_SHOW,
|
||||
EVAS_CALLBACK_HIDE,
|
||||
EVAS_CALLBACK_MOVE,
|
||||
EVAS_CALLBACK_RESIZE,
|
||||
EVAS_CALLBACK_RESTACK
|
||||
} Evas_Callback_Type;
|
||||
|
||||
typedef struct _Evas_Rectangle Evas_Rectangle;
|
||||
|
@ -227,6 +228,7 @@ struct _Evas_Callbacks
|
|||
Evas_Object_List *move;
|
||||
Evas_Object_List *in;
|
||||
Evas_Object_List *out;
|
||||
Evas_Object_List *wheel;
|
||||
Evas_Object_List *key_down;
|
||||
Evas_Object_List *key_up;
|
||||
Evas_Object_List *free;
|
||||
|
|
Loading…
Reference in New Issue