clouseau: added move-lines feature on on mouse move + right btn

Signed-off-by: Aharon Hillel <a.hillel@samsung.com>

SVN revision: 72547
This commit is contained in:
Aharon Hillel 2012-06-20 14:28:56 +00:00 committed by Tom Hacohen
parent 22cc9e004f
commit 6b46f92587
3 changed files with 22 additions and 13 deletions

View File

@ -629,6 +629,9 @@ _mouse_move(void *data,
elm_object_text_set(st->lb_mouse, s_bar);
if (((Evas_Event_Mouse_Move *) event_info)->buttons > 1)
libclouseau_make_lines(st, mp_x, mp_y);
if (((xx >= 0) && (xx < ((Evas_Coord) st->w))) &&
((yy >= 0) && (yy < ((Evas_Coord) st->h))))
{ /* Need to test borders, because image may be scrolled */
@ -651,7 +654,7 @@ _app_win_del(void *data,
evas_object_event_callback_del(st->o, EVAS_CALLBACK_MOUSE_OUT,
_mouse_out);
evas_object_event_callback_del(st->o, EVAS_CALLBACK_MOUSE_DOWN,
libclouseau_make_lines);
libclouseau_lines_cb);
st->win = st->bt = st->lb_mouse = st->o = NULL;
}
@ -834,7 +837,7 @@ _open_app_window(bmp_info_st *st, Evas_Object *bt, Tree_Item *treeit)
_mouse_out, st);
evas_object_event_callback_add(st->o, EVAS_CALLBACK_MOUSE_DOWN,
libclouseau_make_lines, st);
libclouseau_lines_cb, st);
evas_object_resize(st->scr, st->w, st->h);
elm_win_resize_object_add(st->win, bx);

View File

@ -810,20 +810,12 @@ libclouseau_highlight(Evas_Object *obj, st_evas_props *props, bmp_info_st *view)
}
void
libclouseau_make_lines(void *data,
Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info)
libclouseau_make_lines(bmp_info_st *st, Evas_Coord xx, Evas_Coord yy)
{ /* and no, we are NOT talking about WHITE lines */
if (((Evas_Event_Mouse_Down *) event_info)->button == 1)
return; /* make line only if not left mouse button */
bmp_info_st *st = data;
Evas_Coord xx, yy, x_rgn, y_rgn, w_rgn, h_rgn;
Evas_Coord x_rgn, y_rgn, w_rgn, h_rgn;
lines_free(st);
elm_scroller_region_get(st->scr, &x_rgn, &y_rgn, &w_rgn, &h_rgn);
xx = (((Evas_Event_Mouse_Move *) event_info)->cur.canvas.x);
yy = (((Evas_Event_Mouse_Move *) event_info)->cur.canvas.y);
st->lx = evas_object_line_add(evas_object_evas_get(st->o));
st->ly = evas_object_line_add(evas_object_evas_get(st->o));
@ -840,3 +832,16 @@ libclouseau_make_lines(void *data,
evas_object_show(st->lx);
evas_object_show(st->ly);
}
void
libclouseau_lines_cb(void *data,
Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info)
{
if (((Evas_Event_Mouse_Down *) event_info)->button == 1)
return; /* Draw line only if not left mouse button */
libclouseau_make_lines(data,
(((Evas_Event_Mouse_Move *) event_info)->cur.canvas.x),
(((Evas_Event_Mouse_Move *) event_info)->cur.canvas.y));
}

View File

@ -207,5 +207,6 @@ Eina_Bool eet_info_read(const char *filename, app_info_st **app, tree_data_st **
/* Highlight code, we may choose to move this to other file later */
void libclouseau_highlight(Evas_Object *obj, st_evas_props *props, bmp_info_st *view);
void libclouseau_make_lines(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
void libclouseau_make_lines(bmp_info_st *st, Evas_Coord xx, Evas_Coord yy);
void libclouseau_lines_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info);
#endif /* EET_DATA_H */