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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs