Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src


Modified Files:
        ewl_colorpicker.c ewl_colorpicker.h 


Log Message:
Update the color picker value when dragging the mouse.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_colorpicker.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ewl_colorpicker.c   30 Jul 2004 19:44:23 -0000      1.1
+++ ewl_colorpicker.c   11 Aug 2004 04:29:06 -0000      1.2
@@ -44,7 +44,11 @@
                              EWL_PICK_MODE_HSV_HUE);
        ewl_spectrum_dimensions_set(EWL_SPECTRUM(cp->range), 1);
        ewl_callback_append(cp->range, EWL_CALLBACK_MOUSE_DOWN,
-                           ewl_colorpicker_down_cb, cp->spectrum);
+                           ewl_colorpicker_down_cb, cp);
+       ewl_callback_append(cp->range, EWL_CALLBACK_MOUSE_UP,
+                           ewl_colorpicker_up_cb, cp);
+       ewl_callback_append(cp->range, EWL_CALLBACK_MOUSE_MOVE,
+                           ewl_colorpicker_move_cb, cp);
        ewl_object_set_preferred_size(EWL_OBJECT(cp->range), 20, 200);
        ewl_object_set_fill_policy(EWL_OBJECT(cp->range), EWL_FLAG_FILL_VFILL);
        ewl_container_append_child(EWL_CONTAINER(cp), cp->range);
@@ -53,16 +57,47 @@
        DRETURN_INT(TRUE, DLEVEL_STABLE);
 }
 
+void ewl_colorpicker_move_cb(Ewl_Widget *w, void *ev_data, void *user_data)
+{
+       int r, g, b, a;
+       Ewl_ColorPicker *cp = user_data;
+       Ewl_Event_Mouse_Move *ev = ev_data;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       if (cp->drag) {
+               ewl_spectrum_color_coord_map(EWL_SPECTRUM(w), ev->x, ev->y,
+                                            &r, &g, &b, &a);
+               ewl_spectrum_rgb_set(EWL_SPECTRUM(cp->spectrum), r, g, b);
+       }
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
 void ewl_colorpicker_down_cb(Ewl_Widget *w, void *ev_data, void *user_data)
 {
        int r, g, b, a;
+       Ewl_ColorPicker *cp = user_data;
        Ewl_Event_Mouse_Down *ev = ev_data;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
 
+       cp->drag = 1;
        ewl_spectrum_color_coord_map(EWL_SPECTRUM(w), ev->x, ev->y,
                                     &r, &g, &b, &a);
-       ewl_spectrum_rgb_set(EWL_SPECTRUM(user_data), r, g, b);
+       ewl_spectrum_rgb_set(EWL_SPECTRUM(cp->spectrum), r, g, b);
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+void ewl_colorpicker_up_cb(Ewl_Widget *w, void *ev_data, void *user_data)
+{
+       Ewl_ColorPicker *cp = user_data;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       cp->drag = 0;
+       ewl_callback_call(cp, EWL_CALLBACK_VALUE_CHANGED);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_colorpicker.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ewl_colorpicker.h   30 Jul 2004 19:44:23 -0000      1.1
+++ ewl_colorpicker.h   11 Aug 2004 04:29:06 -0000      1.2
@@ -8,6 +8,7 @@
        Ewl_Box box;
        Ewl_Widget *spectrum;
        Ewl_Widget *range;
+       int drag;
 };
 
 Ewl_Widget *ewl_colorpicker_new();
@@ -17,5 +18,7 @@
  * Internal callbacks, override at your own risk.
  */
 void ewl_colorpicker_down_cb(Ewl_Widget *w, void *ev_data, void *user_data);
+void ewl_colorpicker_up_cb(Ewl_Widget *w, void *ev_data, void *user_data);
+void ewl_colorpicker_move_cb(Ewl_Widget *w, void *ev_data, void *user_data);
 
 #endif




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to