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

Reply via email to