Enlightenment CVS committal

Author  : moom
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/lib


Modified Files:
        etk_argument.h etk_colorpicker.c etk_colorpicker.h etk_dnd.h 
        etk_tree.h etk_tree_model.h etk_types.h etk_widget.c 


Log Message:
* More work on the colorpicker
* Do not typedef enums in Etk_Types.h anymore so g++ can compile Etk 
projects


===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_argument.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- etk_argument.h      15 Mar 2006 12:38:41 -0000      1.5
+++ etk_argument.h      18 May 2006 13:13:33 -0000      1.6
@@ -9,23 +9,23 @@
  * @{
  */
 
-enum _Etk_Argument_Returns
+typedef enum Etk_Argument_Returns
 {
    ETK_ARGUMENT_RETURN_OK = 1,                   /* no problems */
    ETK_ARGUMENT_RETURN_OK_NONE_PARSED = 2,       /* no problems, no arguments 
or no valid args */
    ETK_ARGUMENT_RETURN_REQUIRED_NOT_FOUND = 3,   /* required arg not found */
    ETK_ARGUMENT_RETURN_REQUIRED_VALUE_NOT_FOUND = 4, /* required value for arg 
no found */
    ETK_ARGUMENT_RETURN_MALFORMED = 5             /* malformed argument */  
-};
+} Etk_Argument_Returns;
 
-enum _Etk_Argument_Flags
+typedef enum Etk_Argument_Flags
 {
    ETK_ARGUMENT_FLAG_REQUIRED = 1 << 0,     /* argument itself is required */
    ETK_ARGUMENT_FLAG_OPTIONAL = 1 << 1,     /* argument itself is optional */
    ETK_ARGUMENT_FLAG_VALUE_REQUIRED = 1 << 2, /* value of the argument is 
required */
    ETK_ARGUMENT_FLAG_MULTIVALUE = 1 << 3,   /* argument uses multi-valued args 
*/
    ETK_ARGUMENT_FLAG_NONE = 1 << 4          /* used when terminating options */
-};
+} Etk_Argument_Flags;
 
 struct _Etk_Argument
 {
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_colorpicker.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_colorpicker.c   17 May 2006 22:45:57 -0000      1.12
+++ etk_colorpicker.c   18 May 2006 13:13:33 -0000      1.13
@@ -43,6 +43,8 @@
 
 static void _etk_colorpicker_realize_cb(Etk_Object *object, void *data);
 static void _etk_colorpicker_unrealize_cb(Etk_Object *object, void *data);
+static void _etk_colorpicker_slider_realize_cb(Etk_Object *object, void *data);
+static void _etk_colorpicker_slider_unrealize_cb(Etk_Object *object, void 
*data);
 static void _etk_colorpicker_radio_toggled_cb(Etk_Object *object, void *data);
 
 static void _etk_colorpicker_sp_mouse_down_cb(void *data, Evas *e, Evas_Object 
*obj, void *event_info);
@@ -72,6 +74,7 @@
 static void _etk_colorpicker_sp_cursor_update(Etk_Colorpicker *cp);
 static void _etk_colorpicker_vp_image_update(Etk_Colorpicker *cp);
 static void _etk_colorpicker_vp_cursor_update(Etk_Colorpicker *cp);
+static void _etk_colorpicker_sliders_update(Etk_Colorpicker *cp);
 static void _etk_colorpicker_sp_color_get(Etk_Colorpicker *cp, int i, int j, 
int *r, int *g, int *b);
 static void _etk_colorpicker_vp_color_get(Etk_Colorpicker *cp, int i, int *r, 
int *g, int *b);
 static void _etk_colorpicker_color_calc(Etk_Colorpicker_Mode mode, float 
sp_xpos, float sp_ypos, float vp_pos, int *r, int *g, int *b);
@@ -262,12 +265,14 @@
    cp->vp_res = 256;
    cp->vp_pos = 0.0;
    
+   cp->sliders_res = 256;
    cp->sp_dragging = ETK_FALSE;
    cp->vp_dragging = ETK_FALSE;
    cp->sp_image_needs_update = ETK_FALSE;
    cp->sp_cursor_needs_update = ETK_FALSE;
    cp->vp_image_needs_update = ETK_FALSE;
    cp->vp_cursor_needs_update = ETK_FALSE;
+   cp->sliders_need_update = ETK_FALSE;
    
    cp->table = etk_table_new(2, 6, ETK_FALSE);
    etk_widget_parent_set(cp->table, cp_widget);
@@ -285,6 +290,7 @@
       etk_widget_visibility_locked_set(cp->radios[i], ETK_TRUE);
       etk_widget_show(cp->radios[i]);
       
+      cp->sliders_image[i] = NULL;
       cp->sliders[i] = etk_hslider_new(0.0, 1.0, 0.0, 1.0 / 255, 10.0 / 255);
       etk_table_attach(ETK_TABLE(cp->table), cp->sliders[i], 1, 1, i, i,
          0, 0, ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_HEXPAND | 
ETK_FILL_POLICY_VEXPAND);
@@ -292,6 +298,8 @@
       etk_widget_show(cp->sliders[i]);
       
       etk_signal_connect("toggled", ETK_OBJECT(cp->radios[i]), 
ETK_CALLBACK(_etk_colorpicker_radio_toggled_cb), cp);
+      etk_signal_connect("realize", ETK_OBJECT(cp->sliders[i]), 
ETK_CALLBACK(_etk_colorpicker_slider_realize_cb), cp);
+      etk_signal_connect("unrealize", ETK_OBJECT(cp->sliders[i]), 
ETK_CALLBACK(_etk_colorpicker_slider_unrealize_cb), cp);
    }
    
    cp_widget->size_request = _etk_colorpicker_size_request;
@@ -366,6 +374,8 @@
       _etk_colorpicker_vp_image_update(cp);
    if (cp->vp_cursor_needs_update)
       _etk_colorpicker_vp_cursor_update(cp);
+   if (cp->sliders_need_update)
+      _etk_colorpicker_sliders_update(cp);
    
    /* Then, moves and resizes the objects */
    evas_object_move(cp->picker_theme_object, geometry.x, geometry.y);
@@ -383,6 +393,7 @@
    cp->sp_cursor_needs_update = ETK_FALSE;
    cp->vp_image_needs_update = ETK_FALSE;
    cp->vp_cursor_needs_update = ETK_FALSE;
+   cp->sliders_need_update = ETK_FALSE;
 }
 
 /**************************
@@ -466,6 +477,7 @@
    if (!(cp = ETK_COLORPICKER(object)))
       return;
    
+   /* TODO: delete objects! */
    cp->sp_object = NULL;
    cp->sp_image = NULL;
    cp->sp_hcursor = NULL;
@@ -475,6 +487,51 @@
    cp->vp_cursor = NULL;
 }
 
+/* Called when a slider of the colorpicker is realized */
+static void _etk_colorpicker_slider_realize_cb(Etk_Object *object, void *data)
+{
+   Etk_Widget *slider;
+   Etk_Colorpicker *cp;
+   Evas *evas;
+   int i;
+   
+   if (!(slider = ETK_WIDGET(object)) || !(cp = ETK_COLORPICKER(data))  || 
!(evas = etk_widget_toplevel_evas_get(slider)))
+      return;
+   
+   for (i = 0; i < 6; i++)
+   {
+      if (cp->sliders[i] == slider)
+      {
+         cp->sliders_image[i] = evas_object_image_add(evas);
+         evas_object_image_alpha_set(cp->sliders_image[i], 0);
+         evas_object_image_size_set(cp->sliders_image[i], cp->sliders_res, 1);
+         evas_object_show(cp->sliders_image[i]);
+         etk_widget_theme_object_swallow(slider, "slider_image", 
cp->sliders_image[i]);
+         
+         _etk_colorpicker_update(cp, ETK_FALSE, ETK_FALSE, ETK_FALSE, 
ETK_FALSE);
+         return;
+      }
+   }
+}
+
+/* Called when a slider of the colorpicker is unrealized */
+static void _etk_colorpicker_slider_unrealize_cb(Etk_Object *object, void 
*data)
+{
+   /* TODO: del image */
+   Etk_Widget *slider;
+   Etk_Colorpicker *cp;
+   int i;
+   
+   if (!(slider = ETK_WIDGET(object)) || !(cp = ETK_COLORPICKER(data)))
+      return;
+   
+   for (i = 0; i < 6; i++)
+   {
+      if (cp->sliders[i] == slider)
+         cp->sliders_image[i] = NULL;
+   }
+}
+
 /* Called when the color mode is changed with the radio buttons */
 static void _etk_colorpicker_radio_toggled_cb(Etk_Object *object, void *data)
 {
@@ -816,6 +873,7 @@
    cp->sp_cursor_needs_update |= sp_cursor;
    cp->vp_image_needs_update |= vp_image;
    cp->vp_cursor_needs_update |= vp_cursor;
+   cp->sliders_need_update = ETK_TRUE;
    
    /* Updates the color */
    _etk_colorpicker_color_calc(cp->mode, cp->sp_xpos, cp->sp_ypos, cp->vp_pos, 
&r, &g, &b);
@@ -827,6 +885,8 @@
       etk_signal_emit(_etk_colorpicker_signals[ETK_CP_COLOR_CHANGED_SIGNAL], 
ETK_OBJECT(cp), NULL);
    }
    
+   /* TODO: update slider value!! */
+   
    etk_widget_redraw_queue(ETK_WIDGET(cp));
 }
 
@@ -924,6 +984,63 @@
    
    _etk_colorpicker_vp_color_get(cp, cp->vp_res * (1.0 - cp->vp_pos), &r, &g, 
&b);
    evas_object_color_set(cp->vp_cursor, 255 - r, 255 - g, 255 - b, 255);
+}
+
+/* Updates the images of the sliders */
+static void _etk_colorpicker_sliders_update(Etk_Colorpicker *cp)
+{
+   int i, j;
+   int r, g, b;
+   float h, s, v;
+   int r2, g2, b2;
+   uint32_t *data;
+   
+   r = cp->current_color.r;
+   g = cp->current_color.g;
+   b = cp->current_color.b;
+   evas_color_rgb_to_hsv(r, g, b, &h, &s, &v);
+   
+   for (i = 0; i < 6; i++)
+   {
+      if (cp->sliders_image[i] && (data = (uint32_t 
*)evas_object_image_data_get(cp->sliders_image[i], 1)))
+      {
+         for (j = 0; j < cp->sliders_res; j++)
+         {
+            switch (i)
+            {
+               case ETK_COLORPICKER_H:
+                  evas_color_hsv_to_rgb(360.0 * ((float)j / cp->sliders_res), 
s, v, &r2, &g2, &b2);
+                  break;
+               case ETK_COLORPICKER_S:
+                  evas_color_hsv_to_rgb(h, (float)j / cp->sliders_res, v, &r2, 
&g2, &b2);
+                  break;
+               case ETK_COLORPICKER_V:
+                  evas_color_hsv_to_rgb(h, s, (float)j / cp->sliders_res, &r2, 
&g2, &b2);
+                  break;
+               case ETK_COLORPICKER_R:
+                  r2 = (255 * j) / cp->sliders_res;
+                  g2 = g;
+                  b2 = b;
+                  break;
+               case ETK_COLORPICKER_G:
+                  r2 = r;
+                  g2 = (255 * j) / cp->sliders_res;
+                  b2 = b;
+                  break;
+               case ETK_COLORPICKER_B:
+                  r2 = r;
+                  g2 = g;
+                  b2 = (255 * j) / cp->sliders_res;
+                  break;
+               default:
+                  break;
+            }
+            *data = ((r2 << 16) | (g2 << 8) | b2);
+            data++;
+         }
+         evas_object_image_data_update_add(cp->sliders_image[i], 0, 0, 
cp->sliders_res, 1);
+      }
+   }
 }
 
 /* Get the color of the square picker's image, at the point (i, j). (r, g, b) 
must not be NULL! */
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_colorpicker.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- etk_colorpicker.h   17 May 2006 22:45:57 -0000      1.6
+++ etk_colorpicker.h   18 May 2006 13:13:33 -0000      1.7
@@ -63,9 +63,14 @@
    Etk_Bool vp_image_needs_update;
    Etk_Bool vp_cursor_needs_update;
    
+   /* Sliders */
+   int sliders_res;
+   Evas_Object *sliders_image[6];
+   Etk_Widget *sliders[6];
+   Etk_Bool sliders_need_update;
+   
    Etk_Widget *table;
    Etk_Widget *radios[6];
-   Etk_Widget *sliders[6];
    Etk_Widget *value_labels[6];
    
    Etk_Colorpicker_Mode mode;
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_dnd.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- etk_dnd.h   15 Feb 2006 15:03:17 -0000      1.8
+++ etk_dnd.h   18 May 2006 13:13:33 -0000      1.9
@@ -12,14 +12,14 @@
 #define ETK_SELECTION_TARGET_UTF8_STRING "UTF8_STRING"
 #define ETK_SELECTION_TARGET_FILENAME "FILENAME"
 
-enum _Etk_Selection_Content
+typedef enum Etk_Selection_Content
 {
    ETK_SELECTION_CONTENT_NONE,
    ETK_SELECTION_CONTENT_TEXT,
    ETK_SELECTION_CONTENT_FILES,
    ETK_SELECTION_CONTENT_TARGETS,
    ETK_SELECTION_CONTENT_CUSTOM
-};
+} Etk_Selection_Content;
 
 struct _Etk_Event_Selection_Request
 {    
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tree.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- etk_tree.h  7 Apr 2006 15:36:11 -0000       1.22
+++ etk_tree.h  18 May 2006 13:13:33 -0000      1.23
@@ -30,11 +30,11 @@
  * @enum Etk_Tree_Mode
  * @brief The mode of the tree: List (rows can not have children) or tree 
(rows can have children)
  */
-enum _Etk_Tree_Mode
+typedef enum Etk_Tree_Mode
 {
    ETK_TREE_MODE_LIST,
    ETK_TREE_MODE_TREE
-};
+} Etk_Tree_Mode;
 
 /**
  * @struct Etk_Tree_Row
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tree_model.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- etk_tree_model.h    6 Apr 2006 00:29:21 -0000       1.5
+++ etk_tree_model.h    18 May 2006 13:13:33 -0000      1.6
@@ -15,11 +15,11 @@
  * @enum Etk_Tree_Model_Image_Type
  * @brief The types of the images that you could have in an "image" or 
"icon_text" model
  */ 
-enum _Etk_Tree_Model_Image_Type
+typedef enum Etk_Tree_Model_Image_Type
 {
    ETK_TREE_FROM_FILE,
    ETK_TREE_FROM_EDJE
-};
+} Etk_Tree_Model_Image_Type;
 
 /**
  * @struct Etk_Tree_Model
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_types.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- etk_types.h 16 May 2006 22:03:00 -0000      1.40
+++ etk_types.h 18 May 2006 13:13:33 -0000      1.41
@@ -67,11 +67,9 @@
 typedef struct Etk_Canvas Etk_Canvas;
 typedef struct Etk_Colorpicker Etk_Colorpicker;
 typedef struct _Etk_Tree Etk_Tree;
-typedef enum   _Etk_Tree_Mode Etk_Tree_Mode;
 typedef struct _Etk_Tree_Col Etk_Tree_Col;
 typedef struct _Etk_Tree_Row Etk_Tree_Row;
 typedef struct _Etk_Tree_Model Etk_Tree_Model;
-typedef enum   _Etk_Tree_Model_Image_Type Etk_Tree_Model_Image_Type;
 typedef struct _Etk_Range Etk_Range;
 typedef struct _Etk_Slider Etk_Slider;
 typedef struct _Etk_HSlider Etk_HSlider;
@@ -103,10 +101,7 @@
 typedef struct _Etk_Selection_Data_Files Etk_Selection_Data_Files;
 typedef struct _Etk_Selection_Data_Text Etk_Selection_Data_Text;
 typedef struct _Etk_Selection_Data_Targets Etk_Selection_Data_Targets;
-typedef enum   _Etk_Selection_Content Etk_Selection_Content;
 typedef struct _Etk_Drag Etk_Drag;
-typedef enum   _Etk_Argument_Returns Etk_Argument_Returns;
-typedef enum   _Etk_Argument_Flags Etk_Argument_Flags;
 typedef struct _Etk_Argument Etk_Argument;
 typedef struct _Etk_Message_Dialog Etk_Message_Dialog;
 typedef struct Etk_Iconbox Etk_Iconbox;
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_widget.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -3 -r1.52 -r1.53
--- etk_widget.c        13 May 2006 12:04:00 -0000      1.52
+++ etk_widget.c        18 May 2006 13:13:33 -0000      1.53
@@ -2582,6 +2582,7 @@
 }
 
 /* Makes the theme object of the widget swallow an object into one of its part 
*/
+/* TODO: object free_cb?? */
 static Etk_Bool _etk_widget_theme_object_swallow_full(Etk_Widget 
*swallowing_widget, const char *part, Evas_Object *object, Etk_Widget *widget)
 {
    Evas *evas;




-------------------------------------------------------
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

Reply via email to