Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src/bin/tests/pointer Modified Files: ewl_pointer.c Log Message: API break on the embed to add a cursor field. Fancier pointer test. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/pointer/ewl_pointer.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- ewl_pointer.c 23 Oct 2006 14:55:10 -0000 1.1 +++ ewl_pointer.c 26 Oct 2006 05:37:11 -0000 1.2 @@ -4,10 +4,15 @@ #include <stdlib.h> static int create_test(Ewl_Container *win); -static void cb_configure(Ewl_Widget *w, void *ev, void *data); +static void cb_render(Ewl_Widget *w, void *ev, void *data); +static void cb_destroy(Ewl_Widget *w, void *ev, void *data); +static int timer_cb_in(void *data); +static int timer_cb_out(void *data); #define WIN_NAME "buffer_engine_window" +static Ecore_Timer *cur_timer; + void test_info(Ewl_Test *test) { @@ -39,37 +44,75 @@ ewl_object_size_request(EWL_OBJECT(pointer_win), 64, 64); ewl_embed_engine_name_set(EWL_EMBED(pointer_win), "evas_buffer"); ewl_callback_append(pointer_win, EWL_CALLBACK_VALUE_CHANGED, - cb_configure, o); + cb_render, o); + ewl_callback_append(pointer_win, EWL_CALLBACK_DESTROY, + cb_destroy, o); + ewl_widget_appearance_set(pointer_win, "none"); ewl_widget_show(pointer_win); o = ewl_button_new(); ewl_container_child_append(EWL_CONTAINER(pointer_win), o); ewl_widget_show(o); + cur_timer = ecore_timer_add(2.0, timer_cb_in, o); + return 1; } +static int +timer_cb_in(void *data) +{ + Ewl_Widget *button = EWL_WIDGET(data); + + ewl_callback_call(button, EWL_CALLBACK_MOUSE_IN); + + cur_timer = ecore_timer_add(2.0, timer_cb_out, data); + + return 0; +} + +static int +timer_cb_out(void *data) +{ + Ewl_Widget *button = EWL_WIDGET(data); + + ewl_callback_call(button, EWL_CALLBACK_MOUSE_OUT); + + cur_timer = ecore_timer_add(2.0, timer_cb_in, data); + + return 0; +} + static void -cb_configure(Ewl_Widget *w, void *ev, void *data) +cb_render(Ewl_Widget *w, void *ev, void *data) { - int handle; + int old, handle; int width, height; Ewl_Embed *parent; Ewl_Embed *emb = EWL_EMBED(w); Ewl_Widget *entry = EWL_WIDGET(data); + parent = ewl_embed_widget_find(entry); + width = ewl_object_current_w_get(EWL_OBJECT(emb)); height = ewl_object_current_h_get(EWL_OBJECT(emb)); - parent = ewl_embed_widget_find(entry); - - handle = (int)ewl_attach_get(entry, EWL_ATTACH_TYPE_MOUSE_CURSOR); - if (handle >= EWL_MOUSE_CURSOR_MAX) - ewl_engine_pointer_free(parent, handle); + old = (int)ewl_attach_get(entry, EWL_ATTACH_TYPE_MOUSE_CURSOR); + if (old >= EWL_MOUSE_CURSOR_MAX) + ewl_engine_pointer_free(parent, old); handle = ewl_engine_pointer_data_new(parent, emb->evas_window, width, height); - printf("Setting cursor %d\n", handle); ewl_attach_mouse_cursor_set(entry, handle); + if (parent->cursor == old) + ewl_embed_mouse_cursor_set(entry); +} + +static void +cb_destroy(Ewl_Widget *w, void *ev, void *data) +{ + if (cur_timer) + ecore_timer_del(cur_timer); + cur_timer = NULL; } ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs