Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_slider.c e_slider.h e_test.c e_widget_slider.c e_widget_slider.h Log Message: slider widget... workies (in theory). still nto that pretty. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_slider.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_slider.c 17 Nov 2005 08:34:33 -0000 1.1 +++ e_slider.c 18 Nov 2005 15:25:38 -0000 1.2 @@ -169,6 +169,8 @@ edje_object_signal_emit(sd->edje_obj, "hide_label", ""); } _e_smart_format_update(sd); + edje_object_message_signal_process(sd->edje_obj); + edje_object_size_min_calc(sd->edje_obj, &(sd->minw), &(sd->minh)); } const char * @@ -201,6 +203,14 @@ if (minh) *minh = sd->minh; } +Evas_Object * +e_slider_edje_object_get(Evas_Object *obj) +{ + API_ENTRY return NULL; + return sd->edje_obj; +} + + /* local subsystem functions */ static int _e_smart_set_timer(void *data) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_slider.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_slider.h 17 Nov 2005 08:34:33 -0000 1.1 +++ e_slider.h 18 Nov 2005 15:25:38 -0000 1.2 @@ -22,5 +22,6 @@ EAPI void e_slider_direction_set (Evas_Object *obj, int reversed); EAPI int e_slider_direction_get (Evas_Object *obj); EAPI void e_slider_min_size_get (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); +EAPI Evas_Object *e_slider_edje_object_get (Evas_Object *obj); #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_test.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -3 -r1.41 -r1.42 --- e_test.c 17 Nov 2005 08:34:33 -0000 1.41 +++ e_test.c 18 Nov 2005 15:25:38 -0000 1.42 @@ -512,19 +512,21 @@ { E_Dialog *dia; Evas_Object *o; + Evas_Coord mw, mh; dia = e_dialog_new(con); e_dialog_title_set(dia, "A Test Dialog"); o = e_slider_add(dia->win->evas); - e_slider_orientation_set(o, 1); + e_slider_orientation_set(o, 0); e_slider_value_set(o, 0.5); e_slider_value_step_count_set(o, 4); - e_slider_value_format_display_set(o, "%1.1f V"); +// e_slider_value_format_display_set(o, "%1.2f V"); + e_slider_min_size_get(o, &mw, &mh); evas_object_smart_callback_add(o, "changed", _e_test_cb_e_smart_pan_changed_hook, NULL); evas_object_show(o); - e_dialog_content_set(dia, o, 240, 16); + e_dialog_content_set(dia, o, mw, 240 + mh); e_dialog_button_add(dia, "OK", NULL, NULL, NULL); e_win_centered_set(dia->win, 1); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_slider.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_widget_slider.c 18 Nov 2005 07:14:10 -0000 1.1 +++ e_widget_slider.c 18 Nov 2005 15:25:38 -0000 1.2 @@ -6,16 +6,19 @@ typedef struct _E_Widget_Data E_Widget_Data; struct _E_Widget_Data { - Evas_Object *o_slider; + Evas_Object *o_widget, *o_slider; + double *dval; + int *ival; }; static void _e_wid_del_hook(Evas_Object *obj); static void _e_wid_focus_hook(Evas_Object *obj); static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_wid_cb_changed(void *data, Evas_Object *obj, void *event_info); /* externally accessible functions */ Evas_Object * -e_widget_slider_add(Evas *evas) +e_widget_slider_add(Evas *evas, int horiz, int rev, char *fmt, double min, double max, double step, int count, double *dval, int *ival, Evas_Coord size) { Evas_Object *obj, *o; E_Widget_Data *wd; @@ -27,6 +30,7 @@ e_widget_focus_hook_set(obj, _e_wid_focus_hook); wd = calloc(1, sizeof(E_Widget_Data)); e_widget_data_set(obj, wd); + wd->o_widget = obj; o = e_slider_add(evas); wd->o_slider = o; @@ -34,6 +38,26 @@ e_widget_sub_object_add(obj, o); e_widget_resize_object_set(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); + + e_slider_orientation_set(o, horiz); + e_slider_direction_set(o, rev); + e_slider_value_format_display_set(o, fmt); + e_slider_value_step_count_set(o, count); + e_slider_value_step_size_set(o, step); + e_slider_value_range_set(o, min, max); + if (dval) e_slider_value_set(o, *dval); + else if (ival) e_slider_value_set(o, *ival); + + e_slider_min_size_get(o, &mw, &mh); + if (horiz) + e_widget_min_size_set(obj, mw + size, mh); + else + e_widget_min_size_set(obj, mw + size, mh + size); + + wd->dval = dval; + wd->ival = ival; + evas_object_smart_callback_add(o, "changed", _e_wid_cb_changed, wd); + return obj; } @@ -54,12 +78,12 @@ wd = e_widget_data_get(obj); if (e_widget_focus_get(obj)) { -// edje_object_signal_emit(e_scrollframe_edje_object_get(wd->o_scrollframe), "focus_in", ""); + edje_object_signal_emit(e_slider_edje_object_get(wd->o_slider), "focus_in", ""); evas_object_focus_set(wd->o_slider, 1); } else { -// edje_object_signal_emit(e_scrollframe_edje_object_get(wd->o_scrollframe), "focus_out", ""); + edje_object_signal_emit(e_slider_edje_object_get(wd->o_slider), "focus_out", ""); evas_object_focus_set(wd->o_slider, 0); } } @@ -69,3 +93,14 @@ { e_widget_focus_steal(data); } + +static void +_e_wid_cb_changed(void *data, Evas_Object *obj, void *event_info) +{ + E_Widget_Data *wd; + + wd = data; + if (wd->dval) *(wd->dval) = e_slider_value_get(wd->o_slider); + else if (wd->ival) *(wd->ival) = e_slider_value_get(wd->o_slider); + e_widget_change(wd->o_widget); +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_slider.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_widget_slider.h 18 Nov 2005 07:14:10 -0000 1.1 +++ e_widget_slider.h 18 Nov 2005 15:25:38 -0000 1.2 @@ -6,7 +6,7 @@ #ifndef E_WIDGET_SLIDER_H #define E_WIDGET_SLIDER_H -EAPI Evas_Object *e_widget_slider_add(Evas *evas); +EAPI Evas_Object *e_widget_slider_add(Evas *evas, int horiz, int rev, char *fmt, double min, double max, double step, int count, double *dval, int *ival, Evas_Coord sizex); #endif #endif ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today Register for a JBoss Training Course. Free Certification Exam for All Training Attendees Through End of 2005. For more info visit: http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs