Enlightenment CVS committal

Author  : ningerso
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        Ewl.h Makefile.am ewl_combo.c ewl_filepicker.c ewl_list.c 
        ewl_mvc.c ewl_mvc.h ewl_tree2.c 
Added Files:
        ewl_filelist_tree.c ewl_filelist_tree.h 


Log Message:
Add model data to selections to make selections easier to work with.
Initial framework for tree based filelist, non-functional so far.

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/Ewl.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- Ewl.h       4 Jan 2007 05:09:46 -0000       1.22
+++ Ewl.h       18 Jan 2007 10:24:59 -0000      1.23
@@ -305,6 +305,7 @@
 #include <ewl_filelist_list.h>
 #include <ewl_filelist_icon.h>
 #include <ewl_filelist_column.h>
+#include <ewl_filelist_tree.h>
 #include <ewl_filepicker.h>
 #include <ewl_filedialog.h>
 
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/Makefile.am,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -3 -r1.45 -r1.46
--- Makefile.am 1 Jan 2007 20:53:34 -0000       1.45
+++ Makefile.am 18 Jan 2007 10:24:59 -0000      1.46
@@ -38,6 +38,7 @@
        ewl_events.h \
        ewl_floater.h \
        ewl_filelist.h \
+       ewl_filelist_tree.h\
        ewl_filelist_list.h\
        ewl_filelist_icon.h \
        ewl_filelist_column.h \
@@ -121,6 +122,7 @@
        ewl_events.c \
        ewl_floater.c \
        ewl_filelist.c \
+       ewl_filelist_tree.c \
        ewl_filelist_list.c \
        ewl_filelist_icon.c \
        ewl_filelist_column.c \
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_combo.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -3 -r1.43 -r1.44
--- ewl_combo.c 4 Jan 2007 05:09:46 -0000       1.43
+++ ewl_combo.c 18 Jan 2007 10:24:59 -0000      1.44
@@ -254,7 +254,7 @@
        combo = data;
 
        i = ewl_container_child_index_get(EWL_CONTAINER(combo->popup), w);
-       ewl_mvc_selected_set(EWL_MVC(combo), i, -1);
+       ewl_mvc_selected_set(EWL_MVC(combo), ewl_mvc_data_get(EWL_MVC(combo)), 
i, -1);
 
        ewl_widget_hide(combo->popup);
        ewl_widget_state_set(combo->button, "collapsed",
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filepicker.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- ewl_filepicker.c    4 Jan 2007 05:09:47 -0000       1.21
+++ ewl_filepicker.c    18 Jan 2007 10:24:59 -0000      1.22
@@ -149,7 +149,7 @@
        ewl_mvc_model_set(EWL_MVC(fp->type_combo), model);
        ewl_mvc_view_set(EWL_MVC(fp->type_combo), view);
        ewl_mvc_data_set(EWL_MVC(fp->type_combo), fp);
-       ewl_mvc_selected_set(EWL_MVC(fp->type_combo), 0, 0);
+       ewl_mvc_selected_set(EWL_MVC(fp->type_combo), fp, 0, 0);
        ewl_combo_editable_set(EWL_COMBO(fp->type_combo), TRUE);
        ewl_callback_append(fp->type_combo, EWL_CALLBACK_VALUE_CHANGED,
                                        ewl_filepicker_cb_type_change, fp);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_list.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- ewl_list.c  4 Jan 2007 05:09:47 -0000       1.13
+++ ewl_list.c  18 Jan 2007 10:24:59 -0000      1.14
@@ -4,7 +4,7 @@
 #include "ewl_macros.h"
 #include "ewl_private.h"
 
-static Ewl_Widget *ewl_list_widget_at(Ewl_MVC *mvc, int row, int column);
+static Ewl_Widget *ewl_list_widget_at(Ewl_MVC *mvc, void *data, int row, int 
column);
 
 /**
  * @return Returns a new Ewl_Widget on success or NULL on failure
@@ -170,7 +170,8 @@
                                ewl_highlight_follow_get(EWL_HIGHLIGHT(w)));
        }
 
-       ewl_mvc_handle_click(EWL_MVC(data), row, -1);
+       ewl_mvc_handle_click(EWL_MVC(data), ewl_mvc_data_get(EWL_MVC(data)),
+                       row, -1);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -194,7 +195,7 @@
 }
 
 static Ewl_Widget *
-ewl_list_widget_at(Ewl_MVC *mvc, int row, int column __UNUSED__)
+ewl_list_widget_at(Ewl_MVC *mvc, void *data, int row, int column __UNUSED__)
 {
        Ewl_Widget *w;
 
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_mvc.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- ewl_mvc.c   4 Jan 2007 05:09:47 -0000       1.13
+++ ewl_mvc.c   18 Jan 2007 10:24:59 -0000      1.14
@@ -293,6 +293,7 @@
 
 /**
  * @param mvc: The MVC to work with
+ * @param data: The parent data containing the index selection
  * @param list: The list of items to set selected.
  * @return Returns no value
  * @brief Sets the list of items to select. This will remove any items it
@@ -351,6 +352,7 @@
 
 /**
  * @param mvc: The MVC to set the list into
+ * @param data: The parent data containing the index selection
  * @param srow: The start row
  * @param scolumn:  The start column
  * @param erow: The end row
@@ -359,7 +361,7 @@
  * @brief Sets the given range, inclusive, as selected in the mvc
  */
 void
-ewl_mvc_selected_range_add(Ewl_MVC *mvc, int srow, int scolumn,
+ewl_mvc_selected_range_add(Ewl_MVC *mvc, void *data, int srow, int scolumn,
                                         int erow, int ecolumn)
 {
        Ewl_Selection *sel;
@@ -388,10 +390,10 @@
        }
 
        if (mvc->selection_mode == EWL_SELECTION_MODE_SINGLE)
-               sel = ewl_mvc_selection_index_new(srow, scolumn);
+               sel = ewl_mvc_selection_index_new(data, srow, scolumn);
 
        else
-               sel = ewl_mvc_selection_range_new(srow, scolumn, erow, ecolumn);
+               sel = ewl_mvc_selection_range_new(data, srow, scolumn, erow, 
ecolumn);
 
        ecore_list_append(mvc->selected, sel);
        ewl_mvc_selected_change_notify(mvc);
@@ -401,13 +403,14 @@
 
 /**
  * @param mvc: The MVC to work with
+ * @param data: The parent data containing the index selection
  * @param row: The row to set
  * @param column: The column to set
  * @return Returns no value
  * @brief Sets the given index as selected
  */
 void
-ewl_mvc_selected_set(Ewl_MVC *mvc, int row, int column)
+ewl_mvc_selected_set(Ewl_MVC *mvc, void *data, int row, int column)
 {
        Ewl_Selection *sel;
 
@@ -421,20 +424,21 @@
        while ((sel = ecore_list_remove_first(mvc->selected)))
                ewl_mvc_cb_sel_free(sel);
 
-       ewl_mvc_selected_add(mvc, row, column);
+       ewl_mvc_selected_add(mvc, data, row, column);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
 /**
  * @param mvc: The MVC to work with
+ * @param data: The parent data containing the index selection
  * @param row: The row to add
  * @param column: The column to add
  * @return Returns no value
  * @brief Adds the given index to the selected list
  */
 void
-ewl_mvc_selected_add(Ewl_MVC *mvc, int row, int column)
+ewl_mvc_selected_add(Ewl_MVC *mvc, void *data, int row, int column)
 {
        Ewl_Selection *si;
 
@@ -445,7 +449,7 @@
        if (mvc->selection_mode == EWL_SELECTION_MODE_NONE)
                DRETURN(DLEVEL_STABLE);
 
-       si = ewl_mvc_selection_index_new(row, column);
+       si = ewl_mvc_selection_index_new(data, row, column);
        ecore_list_append(mvc->selected, si);
        ewl_mvc_selected_change_notify(mvc);
 
@@ -498,13 +502,14 @@
 
 /**
  * @param mvc: The MVC to work with
+ * @param data: The parent data containing the index selection
  * @param row: The row to remove
  * @param column: The column to remove
  * @return Returns no value
  * @brief Removes the given index from the list of selected indices
  */
 void
-ewl_mvc_selected_rm(Ewl_MVC *mvc, int row, int column)
+ewl_mvc_selected_rm(Ewl_MVC *mvc, void *data, int row, int column)
 {
        Ewl_Selection *sel;
 
@@ -610,7 +615,7 @@
  * @brief Checks if the given index is selected or not.
  */
 unsigned int
-ewl_mvc_selected_is(Ewl_MVC *mvc, int row, int column)
+ewl_mvc_selected_is(Ewl_MVC *mvc, void *data, int row, int column)
 {
        Ewl_Selection *sel;
        int ret = FALSE;
@@ -656,13 +661,14 @@
 }
 
 /**
+ * @param data: The parent data containing the index selection
  * @param row: The row to create the index selection for
  * @param column: The column to create the index for
  * @return Returns a new Ewl_Selection_Idx based on the @a row and @a column
  * @brief Creates a new index selection based on given values
  */
 Ewl_Selection *
-ewl_mvc_selection_index_new(int row, int column)
+ewl_mvc_selection_index_new(void *data, int row, int column)
 {
        Ewl_Selection_Idx *sel;
 
@@ -670,6 +676,7 @@
 
        sel = NEW(Ewl_Selection_Idx, 1);
        sel->sel.type = EWL_SELECTION_TYPE_INDEX;
+       sel->sel.data = data;
        sel->row = row;
        sel->column = column;
 
@@ -685,7 +692,7 @@
  * @brief Creates a new range selection based on given values
  */
 Ewl_Selection *
-ewl_mvc_selection_range_new(int srow, int scolumn, int erow, int ecolumn)
+ewl_mvc_selection_range_new(void *data, int srow, int scolumn, int erow, int 
ecolumn)
 {
        Ewl_Selection_Range *sel;
 
@@ -693,6 +700,8 @@
 
        sel = NEW(Ewl_Selection_Range, 1);
        sel->sel.type = EWL_SELECTION_TYPE_RANGE;
+       /* FIXME: Need to scan the data and split on branches */
+       sel->sel.data = data;
        sel->start.row = srow;
        sel->start.column = scolumn;
        sel->end.row = erow;
@@ -710,7 +719,7 @@
  * @brief Handles the click of the given cell
  */
 void
-ewl_mvc_handle_click(Ewl_MVC *mvc, int row, int column)
+ewl_mvc_handle_click(Ewl_MVC *mvc, void *data, int row, int column)
 {
        unsigned int modifiers;
        int multi_select = FALSE;
@@ -729,6 +738,7 @@
                if (ewl_mvc_selected_count_get(mvc) > 0)
                {
                        Ewl_Selection *sel;
+                       void *sdata;
                        int srow, scolumn;
 
                        /* A shift will add the current position into a 
@@ -741,6 +751,7 @@
                                Ewl_Selection_Idx *idx;
 
                                idx = EWL_SELECTION_IDX(sel);
+                               sdata = sel->data;
                                srow = idx->row;
                                scolumn = idx->column;
 
@@ -753,6 +764,7 @@
                                int i, k;
 
                                idx = EWL_SELECTION_RANGE(sel);
+                               sdata = sel->data;
                                srow = idx->start.row;
                                scolumn = idx->start.column;
 
@@ -777,8 +789,8 @@
                                {
                                        for (k = scolumn; k <= column; k++)
                                        {
-                                               if (ewl_mvc_selected_is(mvc, i, 
k))
-                                                       
ewl_mvc_selected_rm(mvc, i, k);
+                                               if (ewl_mvc_selected_is(mvc, 
data, i, k))
+                                                       
ewl_mvc_selected_rm(mvc, data, i, k);
                                        }
                                }
 
@@ -786,21 +798,21 @@
 
                        ecore_list_remove(mvc->selected);
 
-                       ewl_mvc_selected_range_add(mvc, srow, scolumn,
+                       ewl_mvc_selected_range_add(mvc, data, srow, scolumn,
                                                        row, column);
                }
                else
-                       ewl_mvc_selected_set(mvc, row, column);
+                       ewl_mvc_selected_set(mvc, data, row, column);
        }
        else if (multi_select && (modifiers & EWL_KEY_MODIFIER_CTRL))
        {
-               if (ewl_mvc_selected_is(mvc, row, column))
-                       ewl_mvc_selected_rm(mvc, row, column);
+               if (ewl_mvc_selected_is(mvc, data, row, column))
+                       ewl_mvc_selected_rm(mvc, data, row, column);
                else
-                       ewl_mvc_selected_add(mvc, row, column);
+                       ewl_mvc_selected_add(mvc, data, row, column);
        }
        else
-               ewl_mvc_selected_set(mvc, row, column);
+               ewl_mvc_selected_set(mvc, data, row, column);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -816,7 +828,7 @@
  */
 void
 ewl_mvc_highlight(Ewl_MVC *mvc, Ewl_Container *c,
-       Ewl_Widget *(*widget)(Ewl_MVC *mvc, int row, int column))
+       Ewl_Widget *(*widget)(Ewl_MVC *mvc, void *data, int row, int column))
 {
        Ewl_Selection *sel;
 
@@ -841,7 +853,7 @@
                        Ewl_Selection_Idx *idx;
 
                        idx = EWL_SELECTION_IDX(sel);
-                       w = widget(mvc, idx->row, idx->column);
+                       w = widget(mvc, sel->data, idx->row, idx->column);
                        if (w) ewl_mvc_highlight_do(mvc, c, sel, w);
                }
                else
@@ -855,7 +867,7 @@
                                for (k = idx->start.column; 
                                                k <= idx->end.column; k++)
                                {
-                                       w = widget(mvc, i, k);
+                                       w = widget(mvc, sel->data, i, k);
                                        if (w) ewl_mvc_highlight_do(mvc, c,
                                                                sel, w);
                                }
@@ -994,11 +1006,13 @@
                /* one item left in the grouping */
                if ((((si->start.row - erow) + 1) * 
                                ((si->start.column - si->end.column) + 1)) == 1)
-                       n = ewl_mvc_selection_index_new(si->start.row,
+                       n = ewl_mvc_selection_index_new(sel->data,
+                                                       si->start.row,
                                                        si->start.column);
 
                else
-                       n = ewl_mvc_selection_range_new(si->start.row,
+                       n = ewl_mvc_selection_range_new(sel->data,
+                                                       si->start.row,
                                                        si->start.column,
                                                        erow, si->end.column);
                
@@ -1014,10 +1028,10 @@
                ecolumn = (column - 1);
                if ((((si->end.row - row) + 1) * 
                                ((si->start.column - ecolumn) + 1)) == 1)
-                       n = ewl_mvc_selection_index_new(row, si->start.column);
+                       n = ewl_mvc_selection_index_new(sel->data, row, 
si->start.column);
 
                else
-                       n = ewl_mvc_selection_range_new(row, si->start.column,
+                       n = ewl_mvc_selection_range_new(sel->data, row, 
si->start.column,
                                                        si->end.row, ecolumn);
 
                ecore_list_append(mvc->selected, n);
@@ -1032,10 +1046,10 @@
                scolumn = column + 1;
                if ((((si->end.row - row) + 1) * 
                                ((scolumn - si->end.column) + 1)) == 1)
-                       n = ewl_mvc_selection_index_new(row, si->end.column);
+                       n = ewl_mvc_selection_index_new(sel->data, row, 
si->end.column);
 
                else
-                       n = ewl_mvc_selection_range_new(row, scolumn,
+                       n = ewl_mvc_selection_range_new(sel->data, row, scolumn,
                                                        si->end.row,
                                                        si->end.column);
 
@@ -1051,10 +1065,10 @@
                srow = row + 1;
                if ((((srow - si->end.row) + 1) * 
                                ((column - column) + 1)) == 1)
-                       n = ewl_mvc_selection_index_new(si->end.row, column);
+                       n = ewl_mvc_selection_index_new(sel->data, si->end.row, 
column);
 
                else
-                       n = ewl_mvc_selection_range_new(srow, column,
+                       n = ewl_mvc_selection_range_new(sel->data, srow, column,
                                                        si->end.row, column);
 
                ecore_list_append(mvc->selected, n);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_mvc.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- ewl_mvc.h   4 Jan 2007 05:09:47 -0000       1.11
+++ ewl_mvc.h   18 Jan 2007 10:24:59 -0000      1.12
@@ -36,6 +36,7 @@
 {
        Ewl_Selection_Type type;        /**< The type of selection */
        void *highlight;                /**< highlight widgets for the MVC */
+       void *data;                     /**< Data containing the selection */
 };
 
 /**
@@ -143,25 +144,25 @@
 void            ewl_mvc_selected_list_set(Ewl_MVC *mvc, Ecore_List *list);
 Ecore_List     *ewl_mvc_selected_list_get(Ewl_MVC *mvc);
 
-void            ewl_mvc_selected_range_add(Ewl_MVC *mvc, 
+void            ewl_mvc_selected_range_add(Ewl_MVC *mvc, void *data,
                                                int srow, int scolumn,
                                                int erow, int ecolumn);
 
-void            ewl_mvc_selected_set(Ewl_MVC *mvc, int row, int column);
-void            ewl_mvc_selected_add(Ewl_MVC *mvc, int row, int column);
+void            ewl_mvc_selected_set(Ewl_MVC *mvc, void *data, int row, int 
column);
+void            ewl_mvc_selected_add(Ewl_MVC *mvc, void *data, int row, int 
column);
 Ewl_Selection_Idx *ewl_mvc_selected_get(Ewl_MVC *mvc);
-void            ewl_mvc_selected_rm(Ewl_MVC *mvc, int row, int column);
+void            ewl_mvc_selected_rm(Ewl_MVC *mvc, void *data, int row, int 
column);
 
 int             ewl_mvc_selected_count_get(Ewl_MVC *mvc);
-unsigned int    ewl_mvc_selected_is(Ewl_MVC *mvc, int row, int column);
+unsigned int    ewl_mvc_selected_is(Ewl_MVC *mvc, void *data, int row, int 
column);
 
-Ewl_Selection  *ewl_mvc_selection_index_new(int row, int column);
-Ewl_Selection  *ewl_mvc_selection_range_new(int srow, int scolumn,
+Ewl_Selection  *ewl_mvc_selection_index_new(void *data, int row, int column);
+Ewl_Selection  *ewl_mvc_selection_range_new(void *data, int srow, int scolumn,
                                                int erow, int ecolumn);
 
 void            ewl_mvc_highlight(Ewl_MVC *mvc, Ewl_Container *c,
                                        Ewl_Widget *(*widget)(Ewl_MVC *mvc, 
-                                               int row, int column));
+                                               void *data, int row, int 
column));
 
 /* 
  * internal
@@ -171,7 +172,7 @@
 
 void            ewl_mvc_cb_destroy(Ewl_Widget *w, void *ev, void *data);
 
-void            ewl_mvc_handle_click(Ewl_MVC *mvc, int row, int column);
+void            ewl_mvc_handle_click(Ewl_MVC *mvc, void *data, int row, int 
column);
 
 /**
  * @}
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_tree2.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -3 -r1.50 -r1.51
--- ewl_tree2.c 15 Jan 2007 02:24:40 -0000      1.50
+++ ewl_tree2.c 18 Jan 2007 10:24:59 -0000      1.51
@@ -24,7 +24,7 @@
 static void ewl_tree2_cb_row_clicked(Ewl_Widget *w, void *ev, void *data);
 static void ewl_tree2_cb_cell_clicked(Ewl_Widget *w, void *ev, void *data);
 static void ewl_tree2_cb_selected_change(Ewl_MVC *mvc);
-static Ewl_Widget *ewl_tree2_widget_at(Ewl_MVC *mvc, int row, int column);
+static Ewl_Widget *ewl_tree2_widget_at(Ewl_MVC *mvc, void *data, int row, int 
column);
 
 static void ewl_tree2_create_expansions_hash(Ewl_Tree2 *tree);
 
@@ -913,7 +913,8 @@
 
        row = ewl_container_child_index_get(EWL_CONTAINER(tree->rows), 
                                                        EWL_WIDGET(data));
-       ewl_mvc_handle_click(EWL_MVC(tree), row, -1);
+       ewl_mvc_handle_click(EWL_MVC(tree), ewl_mvc_data_get(EWL_MVC(tree)),
+                               row, -1);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -938,7 +939,8 @@
                                                EWL_WIDGET(data));
        column = ewl_container_child_index_get(EWL_CONTAINER(row), w);
 
-       ewl_mvc_handle_click(EWL_MVC(tree), r, column);
+       ewl_mvc_handle_click(EWL_MVC(tree), ewl_mvc_data_get(EWL_MVC(tree)),
+                       r, column);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -957,7 +959,7 @@
 }
 
 static Ewl_Widget *
-ewl_tree2_widget_at(Ewl_MVC *mvc, int row, int column)
+ewl_tree2_widget_at(Ewl_MVC *mvc, void *data, int row, int column)
 {
        Ewl_Widget *r, *w;
        Ewl_Tree2 *tree;



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