Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

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


Modified Files:
        ewl_tree2.c 


Log Message:
- working on tree2 selections. the selection struct now contains a pointer
  to the model along with the data.
- this breaks the api to set selections on the tree slightly

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/tree2/ewl_tree2.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- ewl_tree2.c 13 Jan 2007 21:52:46 -0000      1.11
+++ ewl_tree2.c 22 Jan 2007 09:33:03 -0000      1.12
@@ -995,7 +995,8 @@
        ewl_model_sort_set(model, tree2_test_data_sort);
        ewl_model_count_set(model, tree2_test_data_count_get);
        ewl_model_expandable_set(model, tree2_test_data_expandable_get);
-       ewl_model_expansion_data_fetch_set(model, 
tree2_test_data_expansion_fetch);
+       ewl_model_expansion_data_fetch_set(model, 
+                                       tree2_test_data_expansion_fetch);
 
        tree = ewl_tree2_new();
        ewl_container_child_append(EWL_CONTAINER(box), tree);
@@ -1003,6 +1004,7 @@
        ewl_callback_append(tree, EWL_CALLBACK_VALUE_CHANGED,
                                        tree2_cb_value_changed, NULL);
        ewl_mvc_data_set(EWL_MVC(tree), data);
+       ewl_mvc_model_set(EWL_MVC(tree), model);
        ewl_tree2_row_expand(EWL_TREE2(tree), data, 2);
        ewl_mvc_selection_mode_set(EWL_MVC(tree), EWL_SELECTION_MODE_MULTI);
        ewl_widget_name_set(tree, "tree");
@@ -1011,26 +1013,21 @@
        /* create a view for the first column that just has an ewl label */
        view = ewl_label_view_get();
        ewl_view_header_fetch_set(view, tree2_test_data_header_fetch);
-       ewl_tree2_column_append(EWL_TREE2(tree), model, view);
+       ewl_tree2_column_append(EWL_TREE2(tree), view, TRUE);
 
        /* create a view for the second column that just has an ewl image */
        view = ewl_view_new();
        ewl_view_constructor_set(view, ewl_image_new);
        ewl_view_assign_set(view, EWL_VIEW_ASSIGN(ewl_image_file_path_set));
        ewl_view_header_fetch_set(view, tree2_test_data_header_fetch);
-       ewl_tree2_column_append(EWL_TREE2(tree), model, view);
-
-       /* we don't want this one sortable */
-       model = ewl_model_new();
-       ewl_model_fetch_set(model, tree2_test_data_fetch);
-       ewl_model_count_set(model, tree2_test_data_count_get);
+       ewl_tree2_column_append(EWL_TREE2(tree), view, TRUE);
 
        /* create a view for the third column that has a custom widget */
        view = ewl_view_new();
        ewl_view_constructor_set(view, tree2_test_custom_new);
        ewl_view_assign_set(view, tree2_test_custom_assign_set);
        ewl_view_header_fetch_set(view, tree2_test_data_header_fetch);
-       ewl_tree2_column_append(EWL_TREE2(tree), model, view);
+       ewl_tree2_column_append(EWL_TREE2(tree), view, FALSE);
 
        o3 = ewl_vbox_new();
        ewl_container_child_append(EWL_CONTAINER(o2), o3);
@@ -1198,7 +1195,8 @@
         * normal app */
        if (row >= d->count)
        {
-               printf("Asking for too many rows %d (count == %d)\n", row, 
d->count);
+               printf("Asking for too many rows %d (count == %d)\n", 
+                                                       row, d->count);
                return NULL;
        }
 
@@ -1252,7 +1250,8 @@
                                b = d->rows[j]->image;
                        }
 
-                       if (((sort == EWL_SORT_DIRECTION_ASCENDING) && 
strcmp(a, b) > 0)
+                       if (((sort == EWL_SORT_DIRECTION_ASCENDING) 
+                                               && strcmp(a, b) > 0)
                                        || ((sort == 
EWL_SORT_DIRECTION_DESCENDING) 
                                                && strcmp(a, b) < 0))
                        {
@@ -1378,10 +1377,24 @@
        {
                if (sel->type == EWL_SELECTION_TYPE_INDEX)
                {
+                       char *val;
+                       int col;
                        Ewl_Selection_Idx *idx;
-
+               
                        idx = EWL_SELECTION_IDX(sel);
-                       printf("    %d %d\n", idx->row, idx->column);
+                       col = idx->column;
+                       if (col == -1) col = 0;
+
+                       if (col != 3)
+                               val = sel->model->fetch(sel->data, idx->row, 
col);
+                       else
+                       {
+                               Tree2_Test_Row_Data *d;
+                               d = sel->model->fetch(sel->data, idx->row, col);
+                               val = d->text;
+                       }
+
+                       printf("    [%d,%d] %s\n", idx->row, idx->column, val);
                }
                else
                {
@@ -1393,7 +1406,21 @@
                        {
                                for (k = idx->start.column; k <=
                                                        idx->end.column; k++)
-                                       printf("    %d %d\n", i, k);
+                               {
+                                       char *val;
+
+                                       if (k != 3)
+                                               val = 
sel->model->fetch(sel->data, 
+                                                                       i, k);
+                                       else
+                                       {
+                                               Tree2_Test_Row_Data *d;
+                                               d = 
sel->model->fetch(sel->data, 
+                                                                       i, k);
+                                               val = d->text;
+                                       }
+                                       printf("    [%d,%d] %s\n", i, k, val);
+                               }
                        }
                }
        }



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to