Enlightenment CVS committal

Author  : davemds
Project : e17
Module  : proto/edje_editor

Dir     : e17/proto/edje_editor/src/bin


Modified Files:
        Makefile.am edje_editor_fill.c edje_editor_gradient.c 
        edje_editor_gradient.h edje_editor_group.c edje_editor_part.c 
        edje_editor_part.h edje_editor_position.c 
        edje_editor_program.c edje_editor_spectra.c 
        edje_editor_spectra.h edje_editor_toolbar.c edje_editor_tree.c 
        edje_editor_tree.h main.h 
Added Files:
        edje_editor_tree_model_spectra.c 
        edje_editor_tree_model_spectra.h 


Log Message:
 * Make the groups combobox searchable !
 * Add spectra preview in the tree. I have done a tree model for gradients :)
 * Add spectra preview in the spectra combobox
 * Add alpha slider for gradients
 * Add gradient type images in gradient type combobox
 * Changed the image for gradient parts
 * Remove unused images
 * Add 1 default font to all the file created
 * invert fill points
 * don't use edje_edit_state_gradient_spectra_id_get as it don't exist enymore 
:P
 * tons of bug fixed

===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/Makefile.am,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- Makefile.am 12 Jul 2008 13:05:17 -0000      1.7
+++ Makefile.am 15 Jul 2008 00:55:42 -0000      1.8
@@ -31,6 +31,7 @@
 edje_editor_fill.h \
 edje_editor_spectra.h \
 edje_editor_spectra_widget.h \
+edje_editor_tree_model_spectra.h \
 main.h
 
 
@@ -54,6 +55,7 @@
 edje_editor_fill.c \
 edje_editor_spectra.c \
 edje_editor_spectra_widget.c \
+edje_editor_tree_model_spectra.c \
 main.c \
 $(edje_editor_INCLUDES)
 
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_fill.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- edje_editor_fill.c  12 Jul 2008 14:45:03 -0000      1.4
+++ edje_editor_fill.c  15 Jul 2008 00:55:42 -0000      1.5
@@ -13,92 +13,93 @@
 
    vbox = etk_vbox_new(ETK_FALSE, 0);
 
-   //hbox (origin)
+   
+   //hbox (size)
    hbox = etk_hbox_new(ETK_FALSE, 0);
    etk_box_append(ETK_BOX(vbox), hbox, ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("<b>Origin X </b>");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
 
-   //UI_FillRelXSpinner
-   UI_FillRelXSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
-   etk_spinner_digits_set(ETK_SPINNER(UI_FillRelXSpinner), 2);
-   etk_widget_size_request_set(UI_FillRelXSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillRelXSpinner,
+   //UI_FillSizeRelXSpinner
+   UI_FillSizeRelXSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
+   etk_spinner_digits_set(ETK_SPINNER(UI_FillSizeRelXSpinner), 2);
+   etk_widget_size_request_set(UI_FillSizeRelXSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillSizeRelXSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("+");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_NONE, 0);
 
-   //UI_FillOffsetXSpinner
-   UI_FillOffsetXSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
-   etk_widget_size_request_set(UI_FillOffsetXSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillOffsetXSpinner,
+   //UI_FillSizeOffsetXSpinner
+   UI_FillSizeOffsetXSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
+   etk_widget_size_request_set(UI_FillSizeOffsetXSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillSizeOffsetXSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("<b>  Y </b>");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
 
-   //UI_FillRelYSpinner
-   UI_FillRelYSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
-   etk_spinner_digits_set(ETK_SPINNER(UI_FillRelYSpinner), 2);
-   etk_widget_size_request_set(UI_FillRelYSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillRelYSpinner,
+   //UI_FillSizeRelYSpinner
+   UI_FillSizeRelYSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
+   etk_spinner_digits_set(ETK_SPINNER(UI_FillSizeRelYSpinner), 2);
+   etk_widget_size_request_set(UI_FillSizeRelYSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillSizeRelYSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("+");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_NONE, 0);
 
-   //UI_FillOffsetYSpinner
-   UI_FillOffsetYSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
-   etk_widget_size_request_set(UI_FillOffsetYSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillOffsetYSpinner,
+   //UI_FillSizeOffsetYSpinner
+   UI_FillSizeOffsetYSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
+   etk_widget_size_request_set(UI_FillSizeOffsetYSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillSizeOffsetYSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
 
-   //hbox (size)
+   //hbox (origin)
    hbox = etk_hbox_new(ETK_FALSE, 0);
    etk_box_append(ETK_BOX(vbox), hbox, ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("<b>Size    X  </b>");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
 
-   //UI_FillSizeRelXSpinner
-   UI_FillSizeRelXSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
-   etk_spinner_digits_set(ETK_SPINNER(UI_FillSizeRelXSpinner), 2);
-   etk_widget_size_request_set(UI_FillSizeRelXSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillSizeRelXSpinner,
+   //UI_FillRelXSpinner
+   UI_FillRelXSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
+   etk_spinner_digits_set(ETK_SPINNER(UI_FillRelXSpinner), 2);
+   etk_widget_size_request_set(UI_FillRelXSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillRelXSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("+");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_NONE, 0);
 
-   //UI_FillSizeOffsetXSpinner
-   UI_FillSizeOffsetXSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
-   etk_widget_size_request_set(UI_FillSizeOffsetXSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillSizeOffsetXSpinner,
+   //UI_FillOffsetXSpinner
+   UI_FillOffsetXSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
+   etk_widget_size_request_set(UI_FillOffsetXSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillOffsetXSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("<b>  Y </b>");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
 
-   //UI_FillSizeRelYSpinner
-   UI_FillSizeRelYSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
-   etk_spinner_digits_set(ETK_SPINNER(UI_FillSizeRelYSpinner), 2);
-   etk_widget_size_request_set(UI_FillSizeRelYSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillSizeRelYSpinner,
+   //UI_FillRelYSpinner
+   UI_FillRelYSpinner = etk_spinner_new(-100.0, 100.0, 0.0, 0.01, 0.1);
+   etk_spinner_digits_set(ETK_SPINNER(UI_FillRelYSpinner), 2);
+   etk_widget_size_request_set(UI_FillRelYSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillRelYSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
    label = etk_label_new("+");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_NONE, 0);
 
-   //UI_FillSizeOffsetYSpinner
-   UI_FillSizeOffsetYSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
-   etk_widget_size_request_set(UI_FillSizeOffsetYSpinner, 45, 20);
-   etk_box_append(ETK_BOX(hbox), UI_FillSizeOffsetYSpinner,
+   //UI_FillOffsetYSpinner
+   UI_FillOffsetYSpinner = etk_spinner_new(-2000, 2000, 0, 1, 10);
+   etk_widget_size_request_set(UI_FillOffsetYSpinner, 45, 20);
+   etk_box_append(ETK_BOX(hbox), UI_FillOffsetYSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
-
+   
    etk_signal_connect("value-changed", ETK_OBJECT(UI_FillRelXSpinner),
                       ETK_CALLBACK(_fill_spinners_value_changed_cb),
                       (void *)REL1X_SPINNER);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_gradient.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- edje_editor_gradient.c      13 Jul 2008 13:40:53 -0000      1.5
+++ edje_editor_gradient.c      15 Jul 2008 00:55:42 -0000      1.6
@@ -5,62 +5,6 @@
 #include "main.h"
 
 
-Etk_Bool
-_gradient_RelSpinners_value_changed_cb(Etk_Range *range, double value, void 
*data)
-{
-   printf("Value Changed Signal on Gradient RelSpinner EMITTED (value: 
%f)\n",etk_range_value_get(range));
-
-   if (!etk_string_length_get(Cur.state) || !etk_string_length_get(Cur.part))
-      return ETK_TRUE;
-
-   switch ((int)(long)data)
-   {
-      case REL1X_SPINNER:
-         edje_edit_state_gradient_rel1_relative_x_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-      case REL1Y_SPINNER:
-         edje_edit_state_gradient_rel1_relative_y_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-      case REL2X_SPINNER:
-         edje_edit_state_gradient_rel2_relative_x_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-      case REL2Y_SPINNER:
-         edje_edit_state_gradient_rel2_relative_y_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-      case REL1XO_SPINNER:
-         edje_edit_state_gradient_rel1_offset_x_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-      case REL1YO_SPINNER:
-         edje_edit_state_gradient_rel1_offset_y_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-      case REL2XO_SPINNER:
-         edje_edit_state_gradient_rel2_offset_x_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-      case REL2YO_SPINNER:
-         edje_edit_state_gradient_rel2_offset_y_set(edje_o, 
-                                 Cur.part->string, Cur.state->string,
-                                 etk_range_value_get(range));
-         break;
-   }
-   canvas_redraw();
-   return ETK_TRUE;
-}
-
-
 /***   Implementation   ***/
 Etk_Widget*
 gradient_frame_create(void)
@@ -71,51 +15,53 @@
    Etk_Combobox_Item *item;
 
    //table
-   table = etk_table_new(2, 4, ETK_TABLE_NOT_HOMOGENEOUS);
+   table = etk_table_new(2, 5, ETK_TABLE_NOT_HOMOGENEOUS);
 
    //UI_GradientTypeComboBox
    label = etk_label_new("<b>Type</b>");
-   etk_table_attach(ETK_TABLE(table), label, 0, 0, 0, 0,ETK_TABLE_NONE,0,0);
+   etk_table_attach(ETK_TABLE(table), label, 0, 0, 0, 0, ETK_TABLE_NONE, 0, 0);
 
    UI_GradientTypeComboBox = etk_combobox_new();
+   etk_combobox_items_height_set(ETK_COMBOBOX(UI_GradientTypeComboBox), 24);
    etk_combobox_column_add(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                           ETK_COMBOBOX_IMAGE, 24, ETK_COMBOBOX_NONE, 0.0);
+                           ETK_COMBOBOX_IMAGE, 27, ETK_COMBOBOX_NONE, 0.0);
    etk_combobox_column_add(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                           ETK_COMBOBOX_LABEL, 75, ETK_COMBOBOX_NONE, 0.0);
+                           ETK_COMBOBOX_LABEL, 75, ETK_COMBOBOX_EXPAND_FILL, 
0.0);
    etk_combobox_build(ETK_COMBOBOX(UI_GradientTypeComboBox));
    etk_table_attach_default(ETK_TABLE(table), UI_GradientTypeComboBox, 1, 1, 
0, 0);
 
    item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                  etk_image_new_from_edje(EdjeFile,"DESC.PNG"), "linear");
+                  etk_image_new_from_edje(EdjeFile,"GRAD_LINEAR.PNG"), 
"linear");
    item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                  etk_image_new_from_edje(EdjeFile,"DESC.PNG"), "linear.diag");
+                  etk_image_new_from_edje(EdjeFile,"GRAD_RADIAL.PNG"), 
"radial");
    item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                  etk_image_new_from_edje(EdjeFile,"DESC.PNG"), 
"linear.codiag");
+                  etk_image_new_from_edje(EdjeFile,"GRAD_RECTANGULAR.PNG"), 
"rectangular");
    item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                  etk_image_new_from_edje(EdjeFile,"DESC.PNG"), "radial");
+                  etk_image_new_from_edje(EdjeFile,"GRAD_ANGULAR.PNG"), 
"angular");
    item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                  etk_image_new_from_edje(EdjeFile,"DESC.PNG"), "rectangular");
-   item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                  etk_image_new_from_edje(EdjeFile,"DESC.PNG"), "angular");
-   item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientTypeComboBox),
-                  etk_image_new_from_edje(EdjeFile,"DESC.PNG"), "sinusoidal");
+                  etk_image_new_from_edje(EdjeFile,"GRAD_SINUSOIDAL.PNG"), 
"sinusoidal");
 
    //UI_GradientSpectraComboBox
    label = etk_label_new("<b>Spectra</b>");
-   etk_table_attach(ETK_TABLE(table), label, 0, 0, 1, 1,ETK_TABLE_NONE,0,0);
+   etk_table_attach(ETK_TABLE(table), label, 0, 0, 1, 1, ETK_TABLE_NONE, 0, 0);
 
    UI_GradientSpectraComboBox = etk_combobox_new();
    etk_combobox_column_add(ETK_COMBOBOX(UI_GradientSpectraComboBox),
-                           ETK_COMBOBOX_IMAGE, 24, ETK_COMBOBOX_NONE, 0.0);
+                           ETK_COMBOBOX_OTHER, 45, ETK_COMBOBOX_NONE, 0.5);
    etk_combobox_column_add(ETK_COMBOBOX(UI_GradientSpectraComboBox),
-                           ETK_COMBOBOX_LABEL, 75, ETK_COMBOBOX_NONE, 0.0);
+                           ETK_COMBOBOX_LABEL, 100, ETK_COMBOBOX_EXPAND_FILL, 
0.0);
    etk_combobox_build(ETK_COMBOBOX(UI_GradientSpectraComboBox));
    etk_table_attach_default(ETK_TABLE(table), UI_GradientSpectraComboBox, 1, 
1, 1, 1);
 
+   //GradientAlphaSlider
+   label = etk_label_new("<b>Alpha</b>");
+   etk_table_attach(ETK_TABLE(table), label, 0, 0, 2, 2,  ETK_TABLE_NONE, 0, 
0);
+   UI_GradientAlphaSlider = etk_hslider_new(0, 255, 15, 1,20);
+   etk_table_attach_default(ETK_TABLE(table), UI_GradientAlphaSlider, 1, 1, 2, 
2);
 
    //hbox (first handler)
    hbox = etk_hbox_new(ETK_FALSE, 0);
-   etk_table_attach_default(ETK_TABLE(table), hbox, 0, 2, 2, 2);
+   etk_table_attach_default(ETK_TABLE(table), hbox, 0, 2, 3, 3);
    
    label = etk_label_new("<b>Start  X </b>");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
@@ -158,7 +104,7 @@
 
    //hbox (second handler)
    hbox = etk_hbox_new(ETK_FALSE, 0);
-   etk_table_attach_default(ETK_TABLE(table), hbox, 0, 2, 3, 3);
+   etk_table_attach_default(ETK_TABLE(table), hbox, 0, 2, 4, 4);
 
    label = etk_label_new("<b>End     X </b>");
    etk_box_append(ETK_BOX(hbox), label, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
@@ -198,6 +144,13 @@
    etk_box_append(ETK_BOX(hbox), UI_GradientRel2YOffsetSpinner,
                   ETK_BOX_START, ETK_BOX_NONE, 0);
 
+   etk_signal_connect("item-activated", ETK_OBJECT(UI_GradientTypeComboBox),
+                     ETK_CALLBACK(_gradient_type_combo_activated_cb), NULL);
+   etk_signal_connect("item-activated", ETK_OBJECT(UI_GradientSpectraComboBox),
+                     ETK_CALLBACK(_gradient_spectra_combo_activated_cb), NULL);
+   
+   etk_signal_connect("value-changed", ETK_OBJECT(UI_GradientAlphaSlider),
+            ETK_CALLBACK(_image_AlphaSlider_value_changed_cb), NULL);
 
    etk_signal_connect("value-changed", ETK_OBJECT(UI_GradientRel1XSpinner),
                       ETK_CALLBACK(_gradient_RelSpinners_value_changed_cb),
@@ -225,11 +178,6 @@
                       ETK_CALLBACK(_gradient_RelSpinners_value_changed_cb),
                       (void *)REL2YO_SPINNER);
 
-   etk_signal_connect("item-activated", ETK_OBJECT(UI_GradientTypeComboBox),
-                     ETK_CALLBACK(_gradient_type_combo_activated_cb), NULL);
-   etk_signal_connect("item-activated", ETK_OBJECT(UI_GradientSpectraComboBox),
-                     ETK_CALLBACK(_gradient_spectra_combo_activated_cb), NULL);
-
    return table;
 }
 
@@ -239,13 +187,18 @@
    const char *type;
    char *p;
    int i;
+   int alpha;
    Etk_Combobox_Item *item;
 
+   //Disable signal propagation
    etk_signal_block("item-activated", ETK_OBJECT(UI_GradientTypeComboBox),
                      ETK_CALLBACK(_gradient_type_combo_activated_cb), NULL);
    etk_signal_block("item-activated", ETK_OBJECT(UI_GradientSpectraComboBox),
                      ETK_CALLBACK(_gradient_spectra_combo_activated_cb), NULL);
 
+   etk_signal_block("value-changed", ETK_OBJECT(UI_GradientAlphaSlider),
+                    ETK_CALLBACK(_image_AlphaSlider_value_changed_cb), NULL);
+
    etk_signal_block("value-changed", ETK_OBJECT(UI_GradientRel1XSpinner),
                     ETK_CALLBACK(_gradient_RelSpinners_value_changed_cb),
                     (void *)REL1X_SPINNER);
@@ -287,15 +240,35 @@
       edje_edit_string_free(type);
    }
    else
-      etk_combobox_active_item_set(ETK_COMBOBOX(UI_GradientTypeComboBox), 
-            
etk_combobox_nth_item_get(ETK_COMBOBOX(UI_GradientTypeComboBox),0));
+      etk_combobox_active_item_set(ETK_COMBOBOX(UI_GradientTypeComboBox),
+            etk_combobox_nth_item_get(ETK_COMBOBOX(UI_GradientTypeComboBox), 
0));
 
    //Set Gradient Spectra Combo
-   etk_combobox_active_item_set(ETK_COMBOBOX(UI_GradientSpectraComboBox), 
-      etk_combobox_nth_item_get(ETK_COMBOBOX(UI_GradientSpectraComboBox),
-          edje_edit_state_gradient_spectra_id_get(edje_o, Cur.part->string,
-                                                  Cur.state->string)));
+   type = edje_edit_state_gradient_spectra_get(edje_o, Cur.part->string, 
Cur.state->string);
+   if (type)
+   {
+      i=0;
+      while ((item = 
etk_combobox_nth_item_get(ETK_COMBOBOX(UI_GradientSpectraComboBox), i)))
+      {
+         p = etk_combobox_item_field_get(item, 1);
+         if (strcmp(p, type) == 0)
+         {
+            
etk_combobox_active_item_set(ETK_COMBOBOX(UI_GradientSpectraComboBox), item);
+            break;
+         }
+         i++;
+      }
+      edje_edit_string_free(type);
+   }
+   else
+      etk_combobox_active_item_set(ETK_COMBOBOX(UI_GradientSpectraComboBox),
+            
etk_combobox_nth_item_get(ETK_COMBOBOX(UI_GradientSpectraComboBox), 0));
 
+   //Set alpha slider
+   edje_edit_state_color_get(edje_o, Cur.part->string, Cur.state->string,
+                             NULL, NULL, NULL, &alpha);
+   etk_range_value_set(ETK_RANGE(UI_GradientAlphaSlider), alpha);
+   
    //Update Rels spinners
    etk_range_value_set(ETK_RANGE(UI_GradientRel1XSpinner),
       edje_edit_state_gradient_rel1_relative_x_get(edje_o, Cur.part->string,
@@ -322,11 +295,15 @@
       edje_edit_state_gradient_rel2_offset_y_get(edje_o, Cur.part->string,
                                                  Cur.state->string));
 
+   //Reenable signal propagation
    etk_signal_unblock("item-activated", ETK_OBJECT(UI_GradientTypeComboBox),
                      ETK_CALLBACK(_gradient_type_combo_activated_cb), NULL);
    etk_signal_unblock("item-activated", ETK_OBJECT(UI_GradientSpectraComboBox),
                      ETK_CALLBACK(_gradient_spectra_combo_activated_cb), NULL);
 
+   etk_signal_unblock("value-changed", ETK_OBJECT(UI_GradientAlphaSlider),
+                    ETK_CALLBACK(_image_AlphaSlider_value_changed_cb), NULL);
+
    etk_signal_unblock("value-changed", ETK_OBJECT(UI_GradientRel1XSpinner),
                     ETK_CALLBACK(_gradient_RelSpinners_value_changed_cb),
                     (void *)REL1X_SPINNER);
@@ -357,28 +334,29 @@
 void
 gradient_spectra_combo_populate(void)
 {
-   Etk_Combobox_Item *item;
    Evas_List *spectrums, *l;
+   Etk_Widget *parent;
 
    //Block signal propagation
    etk_signal_block("item-activated", ETK_OBJECT(UI_GradientSpectraComboBox),
                     ETK_CALLBACK(_gradient_spectra_combo_activated_cb), NULL);
-   
+
    etk_combobox_clear(ETK_COMBOBOX(UI_GradientSpectraComboBox));
-   
+
+   parent = ETK_WIDGET(ETK_COMBOBOX(UI_GradientSpectraComboBox)->window);
    spectrums = l = edje_edit_spectrum_list_get(edje_o);
    while(l)
    {
-      item = etk_combobox_item_append(ETK_COMBOBOX(UI_GradientSpectraComboBox),
-                  etk_image_new_from_edje(EdjeFile,"SPECTRA.PNG"), 
(char*)l->data);
+      etk_combobox_item_append(ETK_COMBOBOX(UI_GradientSpectraComboBox),
+                               spectra_thumb_create(parent, (char*)l->data),
+                               (char*)l->data);
       l = l->next;
    }
    edje_edit_string_list_free(spectrums);
-   
+
    //Reenable signal propagation
    etk_signal_unblock("item-activated", ETK_OBJECT(UI_GradientSpectraComboBox),
                     ETK_CALLBACK(_gradient_spectra_combo_activated_cb), NULL);
-   
 }
 
 Etk_Bool
@@ -405,5 +383,59 @@
    printf("SET %s\n", type);
    edje_edit_state_gradient_type_set(edje_o, Cur.part->string, 
Cur.state->string, type);
 
+   return ETK_TRUE;
+}
+Etk_Bool
+_gradient_RelSpinners_value_changed_cb(Etk_Range *range, double value, void 
*data)
+{
+   printf("Value Changed Signal on Gradient RelSpinner EMITTED (value: 
%f)\n",etk_range_value_get(range));
+
+   if (!etk_string_length_get(Cur.state) || !etk_string_length_get(Cur.part))
+      return ETK_TRUE;
+
+   switch ((int)(long)data)
+   {
+      case REL1X_SPINNER:
+         edje_edit_state_gradient_rel1_relative_x_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+      case REL1Y_SPINNER:
+         edje_edit_state_gradient_rel1_relative_y_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+      case REL2X_SPINNER:
+         edje_edit_state_gradient_rel2_relative_x_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+      case REL2Y_SPINNER:
+         edje_edit_state_gradient_rel2_relative_y_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+      case REL1XO_SPINNER:
+         edje_edit_state_gradient_rel1_offset_x_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+      case REL1YO_SPINNER:
+         edje_edit_state_gradient_rel1_offset_y_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+      case REL2XO_SPINNER:
+         edje_edit_state_gradient_rel2_offset_x_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+      case REL2YO_SPINNER:
+         edje_edit_state_gradient_rel2_offset_y_set(edje_o, 
+                                 Cur.part->string, Cur.state->string,
+                                 etk_range_value_get(range));
+         break;
+   }
+   canvas_redraw();
    return ETK_TRUE;
 }
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_gradient.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- edje_editor_gradient.h      12 Jul 2008 13:05:17 -0000      1.1
+++ edje_editor_gradient.h      15 Jul 2008 00:55:42 -0000      1.2
@@ -5,6 +5,7 @@
 
 Etk_Widget *UI_GradientTypeComboBox;
 Etk_Widget *UI_GradientSpectraComboBox;
+Etk_Widget *UI_GradientAlphaSlider;
 Etk_Widget *UI_GradientRel1XSpinner;
 Etk_Widget *UI_GradientRel1XOffsetSpinner;
 Etk_Widget *UI_GradientRel1YSpinner;
@@ -21,5 +22,6 @@
 
 Etk_Bool _gradient_type_combo_activated_cb(Etk_Combobox *combobox, 
Etk_Combobox_Item *item, void *data);
 Etk_Bool _gradient_spectra_combo_activated_cb(Etk_Combobox *combobox, 
Etk_Combobox_Item *item, void *data);
+Etk_Bool _gradient_RelSpinners_value_changed_cb(Etk_Range *range, double 
value, void *data);
 
 #endif
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_group.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- edje_editor_group.c 12 Jul 2008 14:45:03 -0000      1.8
+++ edje_editor_group.c 15 Jul 2008 00:55:42 -0000      1.9
@@ -221,14 +221,19 @@
    }
 
    //Update Group Combobox
-   Etk_Combobox_Item *item;
-   item = etk_combobox_active_item_get(ETK_COMBOBOX(UI_GroupsComboBox));
-   etk_signal_block("item-activated",ETK_OBJECT(UI_GroupsComboBox),
-                    _tree_combobox_activated_cb, NULL);
-   etk_combobox_item_fields_set(item, name);
-   etk_signal_unblock("item-activated",ETK_OBJECT(UI_GroupsComboBox),
-                      _tree_combobox_activated_cb, NULL);
+   Etk_Combobox_Entry_Item *item;
+   item = 
etk_combobox_entry_active_item_get(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox));
+   etk_signal_block("active-item-changed", ETK_OBJECT(UI_GroupsComboBox),
+                    ETK_CALLBACK(_tree_combobox_active_item_changed_cb), NULL);
+   
etk_combobox_entry_autosearch_enable_set(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox),
+                                            ETK_FALSE);
+   etk_combobox_entry_item_fields_set(item, name);
+   
etk_entry_text_set(ETK_ENTRY(etk_combobox_entry_entry_get(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox))),
 name);
 
+   etk_signal_unblock("active-item-changed", ETK_OBJECT(UI_GroupsComboBox),
+                      ETK_CALLBACK(_tree_combobox_active_item_changed_cb), 
NULL);
+   
etk_combobox_entry_autosearch_enable_set(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox),
+                                            ETK_TRUE);
    //Update FakeWin title
    edje_object_part_text_set(EV_fakewin, "title", name);
 
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_part.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- edje_editor_part.c  12 Jul 2008 13:59:15 -0000      1.10
+++ edje_editor_part.c  15 Jul 2008 00:55:42 -0000      1.11
@@ -189,29 +189,26 @@
 }
 
 char*
-part_type_image_get(int part_type)
+part_type_image_get(const char *part)
 {
    /* Get the name of the group in edje_editor.edj that
     * correspond to the given EDJE_PART_TYPE.
     * Remember to free the returned string.
     */
-
    static char buf[20];
-   char *ret;
-
-   switch (part_type)
+   
+   switch (edje_edit_part_type_get(edje_o, part))
    {
       case EDJE_PART_TYPE_IMAGE:     strcpy(buf, "IMAGE.PNG"); break;
-      case EDJE_PART_TYPE_GRADIENT:  strcpy(buf, "GRAD.PNG"); break;
+      case EDJE_PART_TYPE_GRADIENT:  strcpy(buf, "GRAD_LINEAR.PNG"); break;
       case EDJE_PART_TYPE_TEXT:      strcpy(buf, "TEXT.PNG"); break;
       case EDJE_PART_TYPE_RECTANGLE: strcpy(buf, "RECT.PNG"); break;
       case EDJE_PART_TYPE_SWALLOW:   strcpy(buf, "SWAL.PNG"); break;
       case EDJE_PART_TYPE_GROUP:     strcpy(buf, "GROUP.PNG"); break;
       default:                       strcpy(buf, "NONE.PNG"); break;
    }
-   ret = strdup(buf);
-   printf("IMAGE: %s\n",ret);
-   return ret;
+   
+   return strdup(buf);
 }
 /***   Callbacks   ***/
 Etk_Bool
@@ -320,7 +317,7 @@
 
    //Update PartTree
    row = etk_tree_selected_row_get(ETK_TREE(UI_PartsTree));
-   image_name = part_type_image_get(edje_edit_part_type_get(edje_o, 
Cur.part->string));
+   image_name = part_type_image_get(Cur.part->string);
    etk_tree_row_fields_set(row,TRUE,
                            COL_NAME, EdjeFile, image_name, name, NULL);
    free(image_name);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_part.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- edje_editor_part.h  2 Jul 2008 17:27:02 -0000       1.3
+++ edje_editor_part.h  15 Jul 2008 00:55:42 -0000      1.4
@@ -15,7 +15,7 @@
 
 Etk_Widget*  part_frame_create   (void);
 void         part_frame_update   (void);
-char*        part_type_image_get (int part_type);
+char*        part_type_image_get (const char *part);
 
 
 Etk_Bool _part_EventsCheck_toggled_cb           (Etk_Object *object, void 
*data);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_position.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- edje_editor_position.c      12 Jul 2008 14:45:03 -0000      1.10
+++ edje_editor_position.c      15 Jul 2008 00:55:42 -0000      1.11
@@ -354,14 +354,12 @@
 
       // Add all the part to all the 4 combobox
       Evas_List *parts;
-      int type;
 
       parts = l = edje_edit_parts_list_get(edje_o);
       while (l)
       {
          //printf("-- %s\n", (char *)l->data);
-         type = edje_edit_part_type_get(edje_o,(char *)l->data);
-         image_name = part_type_image_get(type);
+         image_name = part_type_image_get((char *)l->data);
 
          etk_combobox_item_append(ETK_COMBOBOX(UI_Rel1ToXComboBox),
                                   etk_image_new_from_edje(EdjeFile, 
image_name),
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_program.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- edje_editor_program.c       12 Jul 2008 14:45:03 -0000      1.8
+++ edje_editor_program.c       15 Jul 2008 00:55:42 -0000      1.9
@@ -411,7 +411,7 @@
    l = edje_edit_parts_list_get(edje_o);
    while (l)
    {
-      image_name = part_type_image_get(edje_edit_part_type_get(edje_o, 
(char*)l->data));
+      image_name = part_type_image_get((char*)l->data);
       etk_combobox_entry_item_append(ETK_COMBOBOX_ENTRY(UI_SourceEntry),
                   etk_image_new_from_edje(EdjeFile, image_name),
                   (char *)l->data);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_spectra.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- edje_editor_spectra.c       13 Jul 2008 13:41:09 -0000      1.4
+++ edje_editor_spectra.c       15 Jul 2008 00:55:42 -0000      1.5
@@ -4,7 +4,7 @@
 #include <Edje_Edit.h>
 #include "main.h"
 
-
+/**  Implementation **/
 void
 spectra_window_show(void)
 {
@@ -24,7 +24,7 @@
    etk_window_title_set(ETK_WINDOW(UI_SpectrumWin), "Spectrum Editor");
    etk_window_resize(ETK_WINDOW(UI_SpectrumWin), 590, 310);
    etk_signal_connect("delete-event", ETK_OBJECT(UI_SpectrumWin),
-                      ETK_CALLBACK(etk_window_hide_on_delete), NULL);
+                      ETK_CALLBACK(_spectra_window_hide_cb), NULL);
    etk_container_border_width_set(ETK_CONTAINER(UI_SpectrumWin), 5);
 
    //hbox
@@ -39,9 +39,12 @@
    UI_SpectrumList = etk_tree_new();
    etk_tree_mode_set(ETK_TREE(UI_SpectrumList), ETK_TREE_MODE_LIST);
    etk_widget_size_request_set(UI_SpectrumList, 200, 200);
-   etk_tree_headers_visible_set(ETK_TREE(UI_SpectrumList), TRUE);
-   col = etk_tree_col_new(ETK_TREE(UI_SpectrumList), "Spectrum", 130, 0.0);
-   etk_tree_col_model_add(col, etk_tree_model_image_new());
+   etk_tree_headers_visible_set(ETK_TREE(UI_SpectrumList), ETK_FALSE);
+   etk_tree_column_separators_visible_set(ETK_TREE(UI_SpectrumList), 
ETK_FALSE);
+   etk_tree_alternating_row_colors_set(ETK_TREE(UI_SpectrumList), ETK_FALSE);
+   col = etk_tree_col_new(ETK_TREE(UI_SpectrumList), "img", 55, 0.0);
+   etk_tree_col_model_add(col, etk_tree_model_spectra_new());
+   col = etk_tree_col_new(ETK_TREE(UI_SpectrumList), "name", 120, 0.0);
    etk_tree_col_model_add(col, etk_tree_model_text_new());
    etk_tree_build(ETK_TREE(UI_SpectrumList));
    etk_box_append(ETK_BOX(vbox), UI_SpectrumList, ETK_BOX_START, 
ETK_BOX_EXPAND_FILL, 0);
@@ -81,18 +84,20 @@
 spectra_window_populate(void)
 {
    Evas_List *spectrum, *l;
-   Etk_Tree_Col *col;
+   Etk_Tree_Col *col1, *col2;
    Etk_Tree_Row *row;
    char *name;
 
-   col = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 0);
+   col1 = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 0);
+   col2 = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 1);
 
    etk_tree_clear(ETK_TREE(UI_SpectrumList));
 
    spectrum = edje_edit_spectrum_list_get(edje_o);
    for (l = spectrum; l; l = l->next)
       etk_tree_row_append(ETK_TREE(UI_SpectrumList), NULL,
-                          col, EdjeFile, "SPECTRA.PNG", l->data,
+                          col1, l->data,
+                          col2, l->data,
                           NULL);
 
    edje_edit_string_list_free(spectrum);
@@ -103,10 +108,41 @@
    etk_tree_row_scroll_to(row, ETK_FALSE);
 
    //Set Current
-   etk_tree_row_fields_get(row, col, NULL, NULL, &name, NULL);
+   etk_tree_row_fields_get(row, col2, &name, NULL);
    etk_string_set(Cur.spectra, name);
 }
 
+Etk_Widget *
+spectra_thumb_create(Etk_Widget *parent, const char *spectra)
+{
+   Evas_Object *gradient;
+   Etk_Widget *widget;
+   int w = 40;
+   int h = 10;
+   int i;
+
+   gradient = evas_object_gradient_add(etk_widget_toplevel_evas_get(parent));
+   evas_object_gradient_type_set(gradient, "linear", NULL);
+   evas_object_gradient_fill_angle_set(gradient, 90);
+   evas_object_resize(gradient, w, h);
+   evas_object_gradient_fill_set(gradient, 0, 0, h, w);
+
+   for (i = 0; i < edje_edit_spectra_stop_num_get(edje_o, spectra); i++)
+   {
+      int r, g, b, a, d;
+      edje_edit_spectra_stop_color_get(edje_o, spectra, i, &r, &g, &b, &a, &d);
+      evas_object_gradient_color_stop_add(gradient, r, g, b, a, d);
+   }
+   
+   evas_object_show(gradient);
+   
+   widget = etk_evas_object_new_from_object(gradient);
+   etk_signal_connect("destroyed", ETK_OBJECT(widget),
+                     ETK_CALLBACK(_spectra_thumb_destroy), gradient);
+   
+   return widget;
+}
+
 void //TODO this should be done as a new Etk_Event with a callback
 spectra_window_gradient_changed(Etk_Widget *spectra)
 {
@@ -134,7 +170,7 @@
 spectra_window_gradient_name_changed(Etk_Widget *spectra)
 {
    Etk_Tree_Row * row;
-   Etk_Tree_Col *col;
+   Etk_Tree_Col *col1, *col2;
    const char* name;
 
    if (!etk_string_length_get(Cur.spectra)) return;
@@ -146,21 +182,34 @@
    etk_string_set(Cur.spectra, name);
 
    //Set the new name in the tree
-   col = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 0);
+   col1 = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 0);
+   col2 = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 1);
    row = etk_tree_selected_row_get(ETK_TREE(UI_SpectrumList));
    etk_tree_row_fields_set(row, ETK_FALSE,
-                           col, EdjeFile, "GRAD.PNG", name, NULL);
+                           col1, EdjeFile,
+                           col2, name,
+                           NULL);
+}
+
+/**  Callbacks **/
+Etk_Bool
+_spectra_window_hide_cb(Etk_Object *window,void *data)
+{
+   etk_widget_hide(UI_SpectrumWin);
+   gradient_spectra_combo_populate();
+   gradient_frame_update();
+   return ETK_FALSE;
 }
 
 Etk_Bool
 _spectra_list_row_selected_cb(Etk_Tree *tree, Etk_Tree_Row *row, void *data)
 {
-   Etk_Tree_Col *col;
+   Etk_Tree_Col *col2;
    const char *name;
    int i, num;
 
-   col = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 0);
-   etk_tree_row_fields_get(row, col, NULL, NULL, &name, NULL);
+   col2 = etk_tree_nth_col_get(ETK_TREE(UI_SpectrumList), 1);
+   etk_tree_row_fields_get(row, col2, &name, NULL);
 
    if (!name) return ETK_TRUE;
 
@@ -225,4 +274,11 @@
    return ETK_TRUE;
 }
 
-
+Etk_Bool
+_spectra_thumb_destroy(Etk_Object *object, void *data)
+{
+   if (!object || !data) return ETK_TRUE;
+   printf("DESTROY\n");
+   evas_object_del(data);
+   return ETK_TRUE;
+}
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_spectra.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- edje_editor_spectra.h       12 Jul 2008 14:45:03 -0000      1.2
+++ edje_editor_spectra.h       15 Jul 2008 00:55:42 -0000      1.3
@@ -4,21 +4,24 @@
 
 Etk_Widget *UI_SpectrumWin;
 Etk_Widget *UI_SpectrumList;
-Etk_Widget* UI_SpectraWidget;
+Etk_Widget *UI_SpectraWidget;
 
 
 Etk_Widget* spectra_window_create   (void);
 void        spectra_window_show     (void);
 void        spectra_window_populate (void);
+Etk_Widget* spectra_thumb_create    (Etk_Widget *parent, const char *spectra);
 
 void //TODO this should be done as a new Etk_Event with a callback
 spectra_window_gradient_changed(Etk_Widget *spectra);
 void //TODO this should be done as a new Etk_Event with a callback
 spectra_window_gradient_name_changed(Etk_Widget *spectra);
 
+Etk_Bool _spectra_window_hide_cb(Etk_Object *window,void *data);
 Etk_Bool _spectra_list_row_selected_cb(Etk_Tree *tree, Etk_Tree_Row *row, void 
*data);
 Etk_Bool _spectra_add_button_click_cb(Etk_Button *button, void *data);
 Etk_Bool _spectra_del_button_click_cb(Etk_Button *button, void *data);
+Etk_Bool _spectra_thumb_destroy(Etk_Object *object, void *data);
 
 
 #endif
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_toolbar.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- edje_editor_toolbar.c       12 Jul 2008 14:45:03 -0000      1.12
+++ edje_editor_toolbar.c       15 Jul 2008 00:55:42 -0000      1.13
@@ -91,7 +91,7 @@
 
    //New Gradient
    menu_item = etk_menu_item_image_new_with_label("Gradient");
-   image = etk_image_new_from_edje(EdjeFile,"GRAD.PNG");
+   image = etk_image_new_from_edje(EdjeFile,"GRAD_LINEAR.PNG");
    etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
    etk_signal_connect("activated", ETK_OBJECT(menu_item),
                       ETK_CALLBACK(_toolbar_add_menu_item_activated_cb),
@@ -462,7 +462,8 @@
             dialog_alert_show("Can't create gradient.");
             break;
          }
-          row = tree_part_add(name, NULL);
+         edje_edit_state_gradient_type_set(edje_o, name, "default 0.00", 
"linear");
+         row = tree_part_add(name, NULL);
 
          etk_tree_row_select(row);
          etk_tree_row_unfold(row);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_tree.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- edje_editor_tree.c  12 Jul 2008 14:45:03 -0000      1.16
+++ edje_editor_tree.c  15 Jul 2008 00:55:42 -0000      1.17
@@ -1,3 +1,4 @@
+#include <string.h>
 #include <Etk.h>
 #include <Edje.h>
 #include <Edje_Edit.h>
@@ -9,14 +10,12 @@
 tree_create(void)
 {
    //UI_GroupsComboBox
-   UI_GroupsComboBox = etk_combobox_new();
-   etk_combobox_items_height_set(ETK_COMBOBOX(UI_GroupsComboBox), 18);
-   etk_combobox_column_add(ETK_COMBOBOX(UI_GroupsComboBox), ETK_COMBOBOX_LABEL,
-                           30, ETK_COMBOBOX_NONE, 0.0);
-   etk_combobox_build(ETK_COMBOBOX(UI_GroupsComboBox));
-
-   etk_signal_connect("item-activated", ETK_OBJECT(UI_GroupsComboBox),
-                      ETK_CALLBACK(_tree_combobox_activated_cb), NULL);
+   UI_GroupsComboBox = etk_combobox_entry_new_default();
+   etk_combobox_entry_items_height_set(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox), 
18);
+   
etk_combobox_entry_autosearch_enable_set(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox), 
ETK_TRUE);
+  
+   etk_signal_connect("active-item-changed", ETK_OBJECT(UI_GroupsComboBox),
+                      ETK_CALLBACK(_tree_combobox_active_item_changed_cb), 
NULL);
 
    //UI_PartsTree
    Etk_Tree_Col *col;
@@ -101,13 +100,15 @@
    Evas_List *groups, *l;
 
    //Stop signal propagation
-   etk_signal_block("item-activated",ETK_OBJECT(UI_GroupsComboBox),
-                    _tree_combobox_activated_cb, NULL);
+   etk_signal_block("active-item-changed", ETK_OBJECT(UI_GroupsComboBox),
+                    ETK_CALLBACK(_tree_combobox_active_item_changed_cb), NULL);
    etk_signal_block("item-activated",ETK_OBJECT(UI_PartSourceComboBox),
                     _part_SourceComboBox_item_activated_cb, NULL);
+   
etk_combobox_entry_autosearch_enable_set(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox),
+                                            ETK_FALSE);
 
    //Clear the combos
-   etk_combobox_clear(ETK_COMBOBOX(UI_GroupsComboBox));
+   etk_combobox_entry_clear(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox));
    etk_combobox_clear(ETK_COMBOBOX(UI_PartSourceComboBox));
    etk_combobox_item_append(ETK_COMBOBOX(UI_PartSourceComboBox), "None");
 
@@ -115,20 +116,24 @@
    groups = edje_file_collection_list(Cur.edj_temp_name->string);
    for(l = groups; l; l = l->next)
    {
-      etk_combobox_item_append(ETK_COMBOBOX(UI_GroupsComboBox), 
(char*)l->data);
+      etk_combobox_entry_item_append(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox),
+                                     (char*)l->data, NULL);
       etk_combobox_item_append(ETK_COMBOBOX(UI_PartSourceComboBox), 
(char*)l->data);
    }
    edje_file_collection_list_free(groups);
 
    //Renable  signal propagation
-   etk_signal_unblock("item-activated",ETK_OBJECT(UI_GroupsComboBox),
-                      _tree_combobox_activated_cb, NULL);
    etk_signal_unblock("item-activated",ETK_OBJECT(UI_PartSourceComboBox),
                       _part_SourceComboBox_item_activated_cb, NULL);
-
+   etk_signal_unblock("active-item-changed", ETK_OBJECT(UI_GroupsComboBox),
+                      ETK_CALLBACK(_tree_combobox_active_item_changed_cb), 
NULL);
+   
    //Select the first group and load it
-   etk_combobox_active_item_set(ETK_COMBOBOX(UI_GroupsComboBox),
-      etk_combobox_first_item_get(ETK_COMBOBOX(UI_GroupsComboBox)));
+   etk_combobox_entry_active_item_set(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox),
+      
etk_combobox_entry_first_item_get(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox)));
+   
+   
etk_combobox_entry_autosearch_enable_set(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox),
+                                            ETK_TRUE);
 }
 
 Etk_Tree_Row *
@@ -161,7 +166,7 @@
    }
 
    /* Add the row in the right position */
-   buf = part_type_image_get(edje_edit_part_type_get(edje_o, part_name));
+   buf = part_type_image_get(part_name);
    if ((int)(long)after > 1)
       row = etk_tree_row_insert(ETK_TREE(UI_PartsTree),
                                 NULL,
@@ -372,13 +377,17 @@
 
 /***   Group combobox callback   ***/
 Etk_Bool
-_tree_combobox_activated_cb(Etk_Combobox *combobox, Etk_Combobox_Item *item, 
void *data)
+_tree_combobox_active_item_changed_cb(Etk_Combobox_Entry *combobox_entry, void 
*data)
 {
    char *gr;
-   gr = etk_combobox_item_field_get(item,0);
-   //printf("Group combo activated: %s\n",gr);
+   Etk_Combobox_Entry_Item *item;
+   
+   item = etk_combobox_entry_active_item_get(combobox_entry);
+   gr = etk_combobox_entry_item_field_get(item, 0);
+   printf("Group combo activated: %s\n",gr);
    change_group(gr);
+   
+   
etk_entry_text_set(ETK_ENTRY(etk_combobox_entry_entry_get(ETK_COMBOBOX_ENTRY(UI_GroupsComboBox))),
 gr);
 
    return ETK_TRUE;
 }
-
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/edje_editor_tree.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- edje_editor_tree.h  2 Jul 2008 16:55:45 -0000       1.2
+++ edje_editor_tree.h  15 Jul 2008 00:55:43 -0000      1.3
@@ -25,9 +25,8 @@
 Etk_Tree_Row* tree_program_add       (const char* prog);
 
 
-Etk_Bool _tree_combobox_activated_cb (Etk_Combobox *combobox, 
Etk_Combobox_Item *item, void *data);
-Etk_Bool _tree_row_selected_cb       (Etk_Object *object, Etk_Tree_Row *row, 
void *data);
-Etk_Bool _tree_click_cb              (Etk_Tree *tree, Etk_Tree_Row *row, 
Etk_Event_Mouse_Up *event, void *data);
-
+Etk_Bool _tree_row_selected_cb                 (Etk_Object *object, 
Etk_Tree_Row *row, void *data);
+Etk_Bool _tree_click_cb                        (Etk_Tree *tree, Etk_Tree_Row 
*row, Etk_Event_Mouse_Up *event, void *data);
+Etk_Bool _tree_combobox_active_item_changed_cb (Etk_Combobox_Entry 
*combobox_entry, void *data);
 
 #endif
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -3 -r1.42 -r1.43
--- main.h      12 Jul 2008 13:05:17 -0000      1.42
+++ main.h      15 Jul 2008 00:55:43 -0000      1.43
@@ -24,6 +24,7 @@
 #include "edje_editor_fill.h"
 #include "edje_editor_spectra.h"
 #include "edje_editor_spectra_widget.h"
+#include "edje_editor_tree_model_spectra.h"
 
 /* DEFINES */
 #define USE_GL_ENGINE 0



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to