Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/bin/tests/list


Modified Files:
        ewl_list.c 


Log Message:
- add mvc range selection rm
- add multiselect capabilities to ewl_list
- add single and multiselect capabilities to ewl_tree2, both row and cell based
- doxy fixes

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/list/ewl_list.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ewl_list.c  17 Oct 2006 05:37:33 -0000      1.2
+++ ewl_list.c  18 Oct 2006 16:28:07 -0000      1.3
@@ -22,11 +22,13 @@
 
 static void *list_test_data_setup(void);
 static void list_cb_value_changed(Ewl_Widget *w, void *ev, void *data);
+static void list_cb_multi_value_changed(Ewl_Widget *w, void *ev, void *data);
 
 static void list_test_assign_set(Ewl_Widget *w, void *data);
 static void *list_test_data_fetch(void *data, unsigned int row, 
                                                unsigned int column);
 static int list_test_data_count_get(void *data);
+static void list_cb_select_none(Ewl_Widget *w, void *ev, void *data);
 
 void 
 test_info(Ewl_Test *test)
@@ -52,7 +54,7 @@
 
        /* create a list using an ecore_list of strings of labels */
        o = ewl_border_new();
-       ewl_border_text_set(EWL_BORDER(o), "Label List");
+       ewl_border_text_set(EWL_BORDER(o), "Label List (single select)");
        ewl_container_child_append(EWL_CONTAINER(box), o);
        ewl_widget_show(o);
 
@@ -75,6 +77,22 @@
                                        list_cb_value_changed, NULL);
        ewl_widget_show(list);
 
+       /* create a list using an ecore_list of strings of labels */
+       o = ewl_border_new();
+       ewl_border_text_set(EWL_BORDER(o), "Label List (multi select)");
+       ewl_container_child_append(EWL_CONTAINER(box), o);
+       ewl_widget_show(o);
+
+       list = ewl_list_new();
+       ewl_container_child_append(EWL_CONTAINER(o), list);
+       ewl_box_orientation_set(EWL_BOX(list), EWL_ORIENTATION_HORIZONTAL);
+       ewl_mvc_model_set(EWL_MVC(list), model);
+       ewl_mvc_view_set(EWL_MVC(list), view);
+       ewl_mvc_data_set(EWL_MVC(list), str_data);
+       ewl_mvc_selection_mode_set(EWL_MVC(list), EWL_SELECTION_MODE_MULTI);
+       ewl_callback_append(list, EWL_CALLBACK_VALUE_CHANGED, 
+                                       list_cb_multi_value_changed, NULL);
+       ewl_widget_show(list);
 
        /* Create a list from a custom array with a custom assign on the
         * view */
@@ -98,6 +116,9 @@
        ewl_mvc_model_set(EWL_MVC(list), model);
        ewl_mvc_view_set(EWL_MVC(list), view);
        ewl_mvc_data_set(EWL_MVC(list), data);
+       ewl_mvc_selection_mode_set(EWL_MVC(list), EWL_SELECTION_MODE_NONE);
+       ewl_callback_append(list, EWL_CALLBACK_VALUE_CHANGED,
+                                       list_cb_select_none, NULL);
        ewl_widget_show(list);
 
 
@@ -110,6 +131,9 @@
 
        list = ewl_list_new();
        ewl_container_child_append(EWL_CONTAINER(o), list);
+       ewl_mvc_selection_mode_set(EWL_MVC(list), EWL_SELECTION_MODE_NONE);
+       ewl_callback_append(list, EWL_CALLBACK_VALUE_CHANGED,
+                                       list_cb_select_none, NULL);
        ewl_widget_show(list);
 
        for (i = 0; strs[i]; i++)
@@ -202,6 +226,51 @@
 
        ecore_list_goto_index(el, idx->row);
        printf("Selected (%s)\n", (char *)ecore_list_current(el));
+}
+
+static void
+list_cb_multi_value_changed(Ewl_Widget *w, void *ev, void *data)
+{
+       Ecore_List *selected, *el;
+       Ewl_Selection *sel;
+
+       printf("Selected:\n");
+
+       el = ewl_mvc_data_get(EWL_MVC(w));
+       selected = ewl_mvc_selected_list_get(EWL_MVC(w));
+
+       ecore_list_goto_first(selected);
+       while ((sel = ecore_list_next(selected)))
+       {
+               if (sel->type == EWL_SELECTION_TYPE_INDEX)
+               {
+                       Ewl_Selection_Idx *idx;
+
+                       idx = EWL_SELECTION_IDX(sel);
+                       ecore_list_goto_index(el, idx->row);
+                       printf("    %d (%s)\n", idx->row, 
+                                       (char *)ecore_list_current(el));
+               }
+               else
+               {
+                       Ewl_Selection_Range *idx;
+                       int i;
+
+                       idx = EWL_SELECTION_RANGE(sel);
+                       for (i = idx->start.row; i <= idx->end.row; i++)
+                       {
+                               ecore_list_goto_index(el, i);
+                               printf("    %d (%s)\n", i, 
+                                       (char *)ecore_list_current(el));
+                       }
+               }
+       }
+}
+
+static void
+list_cb_select_none(Ewl_Widget *w, void *ev, void *data)
+{
+       printf("ERROR, shouldn't get selection changed callbacks.\n");
 }
 
 



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