forked from enlightenment/efl
event system works - callbakcs happen.. WOOHOO :)
SVN revision: 3193
This commit is contained in:
parent
5173a08776
commit
e37fccc450
|
@ -34,7 +34,8 @@ typedef struct _Evas_Object_Gradient_Box * Evas_Object_Gradient_Box;
|
|||
#define CALLBACK_MOUSE_OUT 1
|
||||
#define CALLBACK_MOUSE_DOWN 2
|
||||
#define CALLBACK_MOUSE_UP 3
|
||||
#define CALLBACK_FREE 4
|
||||
#define CALLBACK_MOUSE_MOVE 4
|
||||
#define CALLBACK_FREE 5
|
||||
|
||||
#define IMAGE_FORMAT_BGRA 0
|
||||
#define IMAGE_FORMAT_ARGB 1
|
||||
|
@ -331,7 +332,8 @@ Evas_Object evas_get_object_at_pos(Evas e, double x, double y);
|
|||
/* data attachment ops */
|
||||
void evas_put_data(Evas e, Evas_Object o, char *key, void *data);
|
||||
void *evas_get_data(Evas e, Evas_Object o, char *key);
|
||||
|
||||
void *evas_remove_data(Evas e, Evas_Object o, char *key);
|
||||
|
||||
/* events */
|
||||
void evas_event_button_down(Evas e, int x, int y, int b);
|
||||
void evas_event_button_up(Evas e, int x, int y, int b);
|
||||
|
|
|
@ -9,7 +9,10 @@ _evas_callback_call(Evas e, Evas_Object o, Evas_Callback_Type callback,
|
|||
int b, int x, int y)
|
||||
{
|
||||
Evas_List l;
|
||||
static in_cb = 0;
|
||||
|
||||
if (in_cb) return;
|
||||
in_cb = 1;
|
||||
if (o->callbacks)
|
||||
{
|
||||
for (l = o->callbacks; l; l = l->next)
|
||||
|
@ -20,8 +23,8 @@ _evas_callback_call(Evas e, Evas_Object o, Evas_Callback_Type callback,
|
|||
if (cb->type == callback)
|
||||
cb->callback(cb->data, e, o, b, x, y);
|
||||
}
|
||||
evas_list_free(o->callbacks);
|
||||
}
|
||||
in_cb = 0;
|
||||
}
|
||||
|
||||
/* callbacks */
|
||||
|
|
|
@ -34,7 +34,8 @@ _evas_highest_object_at_point(Evas e, int x, int y)
|
|||
ob = ll->data;
|
||||
if (ob->current.visible)
|
||||
{
|
||||
if (_evas_point_in_object(e, ll->data, x, y)) o = ll->data;
|
||||
if (_evas_point_in_object(e, ob, x, y))
|
||||
o = ob;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -73,12 +74,18 @@ evas_event_button_down(Evas e, int x, int y, int b)
|
|||
{
|
||||
Evas_Object o;
|
||||
|
||||
if ((b > 1) || (b < 32)) return;
|
||||
if (!e->mouse.buttons) e->mouse.button_object = o;
|
||||
if ((b < 1) || (b > 32)) return;
|
||||
if (!e->mouse.buttons)
|
||||
{
|
||||
o = _evas_highest_object_at_point(e, e->mouse.x, e->mouse.y);
|
||||
e->mouse.button_object = o;
|
||||
}
|
||||
e->mouse.buttons |= (1 << (b - 1));
|
||||
e->mouse.x = x;
|
||||
e->mouse.y = y;
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_DOWN, b, x, y);
|
||||
if (e->mouse.button_object)
|
||||
_evas_callback_call(e, e->mouse.button_object, CALLBACK_MOUSE_DOWN,
|
||||
b, x, y);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -86,28 +93,57 @@ evas_event_button_up(Evas e, int x, int y, int b)
|
|||
{
|
||||
Evas_Object o;
|
||||
|
||||
if ((b > 1) || (b < 32)) return;
|
||||
if ((b < 1) || (b > 32)) return;
|
||||
e->mouse.buttons &= ~(1 << (b - 1));
|
||||
if (!e->mouse.buttons) e->mouse.button_object = NULL;
|
||||
e->mouse.x = x;
|
||||
e->mouse.y = y;
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_UP, b, x, y);
|
||||
if (e->mouse.button_object)
|
||||
_evas_callback_call(e, e->mouse.button_object, CALLBACK_MOUSE_UP,
|
||||
b, x, y);
|
||||
if (!e->mouse.buttons) e->mouse.button_object = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
evas_event_move(Evas e, int x, int y)
|
||||
{
|
||||
Evas_Object o;
|
||||
|
||||
|
||||
if (!e->mouse.button_object)
|
||||
{
|
||||
o = _evas_highest_object_at_point(e, e->mouse.x, e->mouse.y);
|
||||
if (o != e->mouse.object)
|
||||
{
|
||||
if (e->mouse.object)
|
||||
{
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_MOVE,
|
||||
e->mouse.buttons, e->mouse.x, e->mouse.y);
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_OUT,
|
||||
e->mouse.buttons, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
e->mouse.x = x;
|
||||
e->mouse.y = y;
|
||||
e->mouse.object = o;
|
||||
if (e->mouse.object)
|
||||
{
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_IN,
|
||||
e->mouse.buttons, e->mouse.x, e->mouse.y);
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_MOVE,
|
||||
e->mouse.buttons, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
return;
|
||||
}
|
||||
e->mouse.x = x;
|
||||
e->mouse.y = y;
|
||||
if (e->mouse.object)
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_MOVE,
|
||||
e->mouse.buttons, e->mouse.x, e->mouse.y);
|
||||
return;
|
||||
}
|
||||
e->mouse.x = x;
|
||||
e->mouse.y = y;
|
||||
o = _evas_highest_object_at_point(e, e->mouse.x, e->mouse.y);
|
||||
if (o != e->mouse.object)
|
||||
{
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_OUT, e->mouse.buttons, x, y);
|
||||
e->mouse.object = o;
|
||||
_evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_IN, e->mouse.buttons, x, y);
|
||||
}
|
||||
if (e->mouse.button_object)
|
||||
_evas_callback_call(e, e->mouse.button_object, CALLBACK_MOUSE_MOVE,
|
||||
e->mouse.buttons, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -312,12 +312,24 @@ void
|
|||
evas_put_data(Evas e, Evas_Object o, char *key, void *data)
|
||||
{
|
||||
Evas_Data d;
|
||||
Evas_List l;
|
||||
|
||||
if (!key) return;
|
||||
for (l = o->data; l; l = l->next)
|
||||
{
|
||||
Evas_Data d;
|
||||
|
||||
d = l->data;
|
||||
if (!strcmp(d->key, key))
|
||||
{
|
||||
d->data = data;
|
||||
return;
|
||||
}
|
||||
}
|
||||
d = malloc(sizeof(struct _Evas_Data));
|
||||
d->key = strdup(key);
|
||||
d->data = data;
|
||||
o->data = evas_list_append(o->data, d);
|
||||
o->data = evas_list_prepend(o->data, d);
|
||||
}
|
||||
|
||||
void *
|
||||
|
@ -325,6 +337,7 @@ evas_get_data(Evas e, Evas_Object o, char *key)
|
|||
{
|
||||
Evas_List l;
|
||||
|
||||
if (!key) return NULL;
|
||||
for (l = o->data; l; l = l->next)
|
||||
{
|
||||
Evas_Data d;
|
||||
|
@ -335,6 +348,31 @@ evas_get_data(Evas e, Evas_Object o, char *key)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
void *
|
||||
evas_remove_data(Evas e, Evas_Object o, char *key)
|
||||
{
|
||||
Evas_List l;
|
||||
|
||||
if (!key) return NULL;
|
||||
for (l = o->data; l; l = l->next)
|
||||
{
|
||||
Evas_Data d;
|
||||
|
||||
d = l->data;
|
||||
if (!strcmp(d->key, key))
|
||||
{
|
||||
void *data;
|
||||
|
||||
o->data = evas_list_remove(o->data, l->data);
|
||||
data = d->data;
|
||||
free(d->key);
|
||||
free(d);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
evas_world_x_to_screen(Evas e, double x)
|
||||
{
|
||||
|
|
|
@ -113,17 +113,17 @@ evas_set_layer(Evas e, Evas_Object o, int layer_num)
|
|||
{
|
||||
Evas_Layer layer;
|
||||
Evas_List l;
|
||||
int removed;
|
||||
|
||||
if (layer_num == o->current.layer) return;
|
||||
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
removed = 0;
|
||||
for (l = e->layers; l; l = l->next)
|
||||
{
|
||||
layer = l->data;
|
||||
if (layer->layer == o->current.layer)
|
||||
{
|
||||
layer->objects = evas_list_remove(layer->objects, o);
|
||||
removed = 1;
|
||||
if (!layer->objects)
|
||||
{
|
||||
e->layers = evas_list_remove(e->layers, layer);
|
||||
|
@ -132,6 +132,9 @@ evas_set_layer(Evas e, Evas_Object o, int layer_num)
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (!removed) return;
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
o->current.layer = layer_num;
|
||||
for (l = e->layers; l; l = l->next)
|
||||
{
|
||||
|
@ -139,7 +142,7 @@ evas_set_layer(Evas e, Evas_Object o, int layer_num)
|
|||
if (layer->layer == o->current.layer)
|
||||
{
|
||||
layer->objects = evas_list_append(layer->objects, o);
|
||||
break;
|
||||
return;
|
||||
}
|
||||
if (layer->layer > o->current.layer)
|
||||
{
|
||||
|
@ -150,6 +153,9 @@ evas_set_layer(Evas e, Evas_Object o, int layer_num)
|
|||
e->layers = evas_list_prepend_relative(e->layers, layer_new, layer);
|
||||
layer_new->objects = evas_list_append(layer_new->objects, o);
|
||||
layer_new->layer = o->current.layer;
|
||||
if ((o->current.visible) &&
|
||||
(_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -159,6 +165,9 @@ evas_set_layer(Evas e, Evas_Object o, int layer_num)
|
|||
e->layers = evas_list_append(e->layers, layer);
|
||||
layer->objects = evas_list_append(layer->objects, o);
|
||||
layer->layer = o->current.layer;
|
||||
if ((o->current.visible) &&
|
||||
(_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -182,6 +191,9 @@ evas_raise(Evas e, Evas_Object o)
|
|||
layer->objects = evas_list_append(layer->objects, o);
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if ((o->current.visible) &&
|
||||
(_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -198,6 +210,9 @@ evas_lower(Evas e, Evas_Object o)
|
|||
layer->objects = evas_list_prepend(layer->objects, o);
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if ((o->current.visible) &&
|
||||
(_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -214,6 +229,9 @@ evas_stack_above(Evas e, Evas_Object o, Evas_Object above)
|
|||
layer->objects = evas_list_append_relative(layer->objects, o, above);
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if ((o->current.visible) &&
|
||||
(_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -230,6 +248,9 @@ evas_stack_below(Evas e, Evas_Object o, Evas_Object above)
|
|||
layer->objects = evas_list_prepend_relative(layer->objects, o, above);
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if ((o->current.visible) &&
|
||||
(_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -237,21 +258,33 @@ evas_stack_below(Evas e, Evas_Object o, Evas_Object above)
|
|||
void
|
||||
evas_move(Evas e, Evas_Object o, double x, double y)
|
||||
{
|
||||
int event_update = 0;
|
||||
|
||||
if ((o->type == OBJECT_LINE)) return;
|
||||
if (_evas_point_in_object(e, o, e->mouse.x, e->mouse.y))
|
||||
event_update = 1;
|
||||
o->current.x = x;
|
||||
o->current.y = y;
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if ((_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)) || event_update)
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
|
||||
void
|
||||
evas_resize(Evas e, Evas_Object o, double w, double h)
|
||||
{
|
||||
int event_update = 0;
|
||||
|
||||
if ((o->type == OBJECT_TEXT) || (o->type == OBJECT_LINE)) return;
|
||||
if (_evas_point_in_object(e, o, e->mouse.x, e->mouse.y))
|
||||
event_update = 1;
|
||||
o->current.w = w;
|
||||
o->current.h = h;
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if ((_evas_point_in_object(e, o, e->mouse.x, e->mouse.y)) || event_update)
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -271,6 +304,8 @@ evas_show(Evas e, Evas_Object o)
|
|||
o->current.visible = 1;
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if (_evas_point_in_object(e, o, e->mouse.x, e->mouse.y))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -279,4 +314,6 @@ evas_hide(Evas e, Evas_Object o)
|
|||
o->current.visible = 0;
|
||||
o->changed = 1;
|
||||
e->changed = 1;
|
||||
if (_evas_point_in_object(e, o, e->mouse.x, e->mouse.y))
|
||||
evas_event_move(e, e->mouse.x, e->mouse.y);
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
static void
|
||||
void
|
||||
_evas_object_get_current_translated_coords(Evas e, Evas_Object o,
|
||||
int *x, int *y, int *w, int *h)
|
||||
{
|
||||
|
@ -26,7 +26,7 @@ _evas_object_get_current_translated_coords(Evas e, Evas_Object o,
|
|||
e->current.viewport.h);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
_evas_object_get_previous_translated_coords(Evas e, Evas_Object o,
|
||||
int *x, int *y, int *w, int *h)
|
||||
{
|
||||
|
@ -522,18 +522,19 @@ evas_render(Evas e)
|
|||
Evas_Object_Rectangle oo;
|
||||
|
||||
oo = o;
|
||||
func_rectangle_draw(e->current.display,
|
||||
e->current.drawable,
|
||||
e->current.drawable_width,
|
||||
e->current.drawable_height,
|
||||
o->current.x,
|
||||
o->current.y,
|
||||
o->current.w,
|
||||
o->current.h,
|
||||
oo->current.r,
|
||||
oo->current.g,
|
||||
oo->current.b,
|
||||
oo->current.a);
|
||||
if (oo->current.a != 0)
|
||||
func_rectangle_draw(e->current.display,
|
||||
e->current.drawable,
|
||||
e->current.drawable_width,
|
||||
e->current.drawable_height,
|
||||
o->current.x,
|
||||
o->current.y,
|
||||
o->current.w,
|
||||
o->current.h,
|
||||
oo->current.r,
|
||||
oo->current.g,
|
||||
oo->current.b,
|
||||
oo->current.a);
|
||||
}
|
||||
break;
|
||||
case OBJECT_LINE:
|
||||
|
|
|
@ -16,6 +16,55 @@ get_time(void)
|
|||
return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
|
||||
}
|
||||
|
||||
|
||||
/* callbacks for logo object */
|
||||
|
||||
void
|
||||
mouse_down (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
|
||||
{
|
||||
evas_put_data(_e, _o, "clicked", (void *)1);
|
||||
evas_put_data(_e, _o, "x", (void *)_x);
|
||||
evas_put_data(_e, _o, "y", (void *)_y);
|
||||
evas_set_layer(_e, _o, 200);
|
||||
}
|
||||
|
||||
void
|
||||
mouse_up (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
|
||||
{
|
||||
evas_remove_data(_e, _o, "clicked");
|
||||
evas_set_layer(_e, _o, 50);
|
||||
}
|
||||
|
||||
void
|
||||
mouse_move (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
|
||||
{
|
||||
if (evas_get_data(_e, _o, "clicked"))
|
||||
{
|
||||
double ox, oy;
|
||||
int x, y;
|
||||
|
||||
evas_get_geometry(_e, _o, &ox, &oy, NULL, NULL);
|
||||
x = evas_get_data(_e, _o, "x");
|
||||
y = evas_get_data(_e, _o, "y");
|
||||
evas_put_data(_e, _o, "x", (void *)_x);
|
||||
evas_put_data(_e, _o, "y", (void *)_y);
|
||||
evas_move(_e, _o, ox + _x - x, oy + _y - y);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
mouse_in (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
mouse_out (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
|
||||
{
|
||||
}
|
||||
|
||||
/* done with callbacks */
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
|
@ -88,6 +137,11 @@ main(int argc, char **argv)
|
|||
evas_show(e, o[0]);
|
||||
o[1] = evas_add_image_from_file(e, "img/logo001.png");
|
||||
evas_get_image_size(e, o[1], &w, &h);
|
||||
evas_callback_add(e, o[1], CALLBACK_MOUSE_DOWN, mouse_down, NULL);
|
||||
evas_callback_add(e, o[1], CALLBACK_MOUSE_UP, mouse_up, NULL);
|
||||
evas_callback_add(e, o[1], CALLBACK_MOUSE_MOVE, mouse_move, NULL);
|
||||
evas_callback_add(e, o[1], CALLBACK_MOUSE_IN, mouse_in, NULL);
|
||||
evas_callback_add(e, o[1], CALLBACK_MOUSE_OUT, mouse_out, NULL);
|
||||
w /= 2;
|
||||
h /= 2;
|
||||
evas_show(e, o[1]);
|
||||
|
@ -111,12 +165,22 @@ main(int argc, char **argv)
|
|||
evas_resize(e, o_rect, 200, 100);
|
||||
evas_set_color(e, o_rect, rand()&0xff, rand()&0xff, rand()&0xff, 120);
|
||||
evas_set_layer(e, o_rect, 150);
|
||||
evas_callback_add(e, o_rect, CALLBACK_MOUSE_DOWN, mouse_down, NULL);
|
||||
evas_callback_add(e, o_rect, CALLBACK_MOUSE_UP, mouse_up, NULL);
|
||||
evas_callback_add(e, o_rect, CALLBACK_MOUSE_MOVE, mouse_move, NULL);
|
||||
evas_callback_add(e, o_rect, CALLBACK_MOUSE_IN, mouse_in, NULL);
|
||||
evas_callback_add(e, o_rect, CALLBACK_MOUSE_OUT, mouse_out, NULL);
|
||||
|
||||
o_line = evas_add_line(e);
|
||||
evas_show(e, o_line);
|
||||
evas_set_line_xy(e, o_line, 10, 20, 100, 50);
|
||||
evas_set_color(e, o_line, rand()&0xff, rand()&0xff, rand()&0xff, 120);
|
||||
evas_set_layer(e, o_rect, 150);
|
||||
evas_callback_add(e, o_line, CALLBACK_MOUSE_DOWN, mouse_down, NULL);
|
||||
evas_callback_add(e, o_line, CALLBACK_MOUSE_UP, mouse_up, NULL);
|
||||
evas_callback_add(e, o_line, CALLBACK_MOUSE_MOVE, mouse_move, NULL);
|
||||
evas_callback_add(e, o_line, CALLBACK_MOUSE_IN, mouse_in, NULL);
|
||||
evas_callback_add(e, o_line, CALLBACK_MOUSE_OUT, mouse_out, NULL);
|
||||
|
||||
o_grad = evas_add_gradient_box(e);
|
||||
evas_show(e, o_grad);
|
||||
|
@ -129,6 +193,11 @@ main(int argc, char **argv)
|
|||
evas_gradient_add_color(grad, 255, 0 , 0, 150, 8);
|
||||
evas_gradient_add_color(grad, 0 , 0 , 0, 0, 8);
|
||||
evas_set_gradient(e, o_grad, grad);
|
||||
evas_callback_add(e, o_grad, CALLBACK_MOUSE_DOWN, mouse_down, NULL);
|
||||
evas_callback_add(e, o_grad, CALLBACK_MOUSE_UP, mouse_up, NULL);
|
||||
evas_callback_add(e, o_grad, CALLBACK_MOUSE_MOVE, mouse_move, NULL);
|
||||
evas_callback_add(e, o_grad, CALLBACK_MOUSE_IN, mouse_in, NULL);
|
||||
evas_callback_add(e, o_grad, CALLBACK_MOUSE_OUT, mouse_out, NULL);
|
||||
|
||||
o_fps = evas_add_text(e, "morpheus", 16, "FPS...");
|
||||
evas_set_color(e, o_fps, 255, 255, 255, 120);
|
||||
|
@ -162,8 +231,7 @@ main(int argc, char **argv)
|
|||
button = ev.xbutton.button;
|
||||
mouse_x = ev.xbutton.x;
|
||||
mouse_y = ev.xbutton.y;
|
||||
evas_move(e, o[1], mouse_x - w, mouse_y - h);
|
||||
evas_set_layer(e, o[1], 200);
|
||||
evas_event_button_down(e, mouse_x, mouse_y, button);
|
||||
}
|
||||
break;
|
||||
case ButtonRelease:
|
||||
|
@ -174,8 +242,7 @@ main(int argc, char **argv)
|
|||
button = ev.xbutton.button;
|
||||
mouse_x = ev.xbutton.x;
|
||||
mouse_y = ev.xbutton.y;
|
||||
evas_move(e, o[1], mouse_x - w, mouse_y - h);
|
||||
evas_set_layer(e, o[1], 1);
|
||||
evas_event_button_up(e, mouse_x, mouse_y, button);
|
||||
}
|
||||
break;
|
||||
case MotionNotify:
|
||||
|
@ -184,8 +251,7 @@ main(int argc, char **argv)
|
|||
|
||||
mouse_x = ev.xmotion.x;
|
||||
mouse_y = ev.xmotion.y;
|
||||
if (down)
|
||||
evas_move(e, o[1], mouse_x - w, mouse_y - h);
|
||||
evas_event_move(e, mouse_x, mouse_y);
|
||||
}
|
||||
break;
|
||||
case Expose:
|
||||
|
|
Loading…
Reference in New Issue