Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_color_dialog.c e_color_dialog.h e_test.c e_widget_color_well.c Log Message: add a change callback to the color dialog update grad preview live as you select a color =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_color_dialog.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_color_dialog.c 13 Oct 2006 20:35:39 -0000 1.7 +++ e_color_dialog.c 14 Oct 2006 04:50:00 -0000 1.8 @@ -8,6 +8,7 @@ static void _e_color_dialog_button2_click(void *data, E_Dialog *edia); static void _e_color_dialog_free(E_Color_Dialog *dia); static void _e_color_dialog_dia_del(void *obj); +static void _e_color_dialog_cb_csel_change(void *data, Evas_Object *obj); /** * Create a color selector dialog. @@ -38,6 +39,7 @@ evas_object_show(o); e_widget_min_size_get(o, &mw, &mh); e_dialog_content_set(dia->dia, o, 460, 260); + e_widget_on_change_hook_set(o, _e_color_dialog_cb_csel_change, dia); /* buttons at the bottom */ e_dialog_button_add(dia->dia, "OK", NULL, _e_color_dialog_button1_click, dia); @@ -65,17 +67,35 @@ } void -e_color_dialog_select_callback_add(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data) +e_color_dialog_select_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data) { dia->select_func = func; dia->select_data = data; } void -e_color_dialog_cancel_callback_add(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data) +e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data) { dia->cancel_func = func; dia->cancel_data = data; +} + + +EAPI void +e_color_dialog_change_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data) +{ + dia->change_func = func; + dia->change_data = data; +} + +static void +_e_color_dialog_cb_csel_change(void *data, Evas_Object *obj) +{ + E_Color_Dialog *dia; + dia = data; + printf("COLOR DIALOG csel change\n"); + if (dia->change_func && dia->color) + dia->change_func(dia, dia->color, dia->change_data); } static void =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_color_dialog.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_color_dialog.h 10 Sep 2006 04:51:07 -0000 1.4 +++ e_color_dialog.h 14 Oct 2006 04:50:00 -0000 1.5 @@ -24,13 +24,16 @@ void *select_data; void (*cancel_func)(E_Color_Dialog *dia, E_Color *color, void *data); void *cancel_data; + void (*change_func)(E_Color_Dialog *dia, E_Color *color, void *data); + void *change_data; }; EAPI E_Color_Dialog *e_color_dialog_new (E_Container *con, const E_Color *initial_color); EAPI void e_color_dialog_show (E_Color_Dialog *dia); EAPI void e_color_dialog_title_set (E_Color_Dialog *dia, const char *title); -EAPI void e_color_dialog_select_callback_add(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data); -EAPI void e_color_dialog_cancel_callback_add(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data); +EAPI void e_color_dialog_select_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data); +EAPI void e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data); +EAPI void e_color_dialog_change_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data); #endif #endif =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_test.c,v retrieving revision 1.74 retrieving revision 1.75 diff -u -3 -r1.74 -r1.75 --- e_test.c 30 Aug 2006 14:45:33 -0000 1.74 +++ e_test.c 14 Oct 2006 04:50:00 -0000 1.75 @@ -668,7 +668,7 @@ d = e_color_dialog_new(con, NULL); e_color_dialog_show(d); - e_color_dialog_select_callback_add(d, _e_test_cb_ok, NULL); + e_color_dialog_select_callback_set(d, _e_test_cb_ok, NULL); } #else =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_color_well.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- e_widget_color_well.c 13 Oct 2006 02:49:40 -0000 1.10 +++ e_widget_color_well.c 14 Oct 2006 04:50:00 -0000 1.11 @@ -20,6 +20,7 @@ static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source); static void _e_wid_color_select_cb(E_Color_Dialog *dia, E_Color *color, void *data); static void _e_wid_color_cancel_cb(E_Color_Dialog *dia, E_Color *color, void *data); +static void _e_wid_color_change_cb(E_Color_Dialog *dia, E_Color *color, void *data); static void _e_wid_disable_hook(Evas_Object *obj); static void @@ -48,8 +49,9 @@ if (!wd->dia) { wd->dia = e_color_dialog_new(wd->con, wd->color); - e_color_dialog_select_callback_add(wd->dia, _e_wid_color_select_cb, wd); - e_color_dialog_cancel_callback_add(wd->dia, _e_wid_color_cancel_cb, wd); + e_color_dialog_select_callback_set(wd->dia, _e_wid_color_select_cb, wd); + e_color_dialog_cancel_callback_set(wd->dia, _e_wid_color_cancel_cb, wd); + e_color_dialog_change_callback_set(wd->dia, _e_wid_color_change_cb, wd); } e_color_dialog_show(wd->dia); } @@ -70,6 +72,16 @@ E_Widget_Data *wd; wd = data; wd->dia = NULL; +} + +static void +_e_wid_color_change_cb(E_Color_Dialog *dia, E_Color *color, void *data) +{ + E_Widget_Data *wd; + wd = data; + printf("COLOR WELL change_cb\n"); + e_color_copy(color, wd->color); + _e_wid_update(wd); } static void ------------------------------------------------------------------------- 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