Enlightenment CVS committal

Author  : moom
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_cache.c etk_tree2.c etk_tree2.h 


Log Message:
* [Tree2] Add etk_tree2_selected_row_get() and fix a bug with 
tree2->last_selected_row


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_cache.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- etk_cache.c 5 Jan 2007 22:25:12 -0000       1.9
+++ etk_cache.c 6 Jan 2007 19:23:09 -0000       1.10
@@ -245,3 +245,16 @@
 }
 
 /** @} */
+
+/**************************
+ *
+ * Documentation
+ *
+ **************************/
+
+/**
+ * @addtogroup Etk_Cache
+ *
+ * You will almost never have to use Etk_Cache directly, except if you are 
implementing a new widget that needs to
+ * load a lot of images efficiently, or if you are creating a new tree-model 
that displays images.
+ */
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_tree2.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_tree2.c 5 Jan 2007 22:11:59 -0000       1.12
+++ etk_tree2.c 6 Jan 2007 19:23:09 -0000       1.13
@@ -1192,6 +1192,20 @@
 }
 
 /**
+ * @brief Gets the row that was selected at last
+ * @param tree a tree
+ * @return Returns the row that was selected at last, or NULL if no row is 
selected
+ * @note If you want to get all the selected rows (if multiple-selection is 
enabled), you have to walk through
+ * all the rows, and see if they are selected with etk_tree2_row_is_selected()
+ */
+Etk_Tree2_Row *etk_tree2_selected_row_get(Etk_Tree2 *tree)
+{
+   if (!tree || !tree->last_selected_row || !tree->last_selected_row->selected)
+      return NULL;
+   return tree->last_selected_row;
+}
+
+/**
  * @brief Selects all the rows of the tree
  * @param tree a tree
  * @note When you call etk_tree2_select_all(), for performance reasons, the 
signal "row_selected" is not emitted for
@@ -1237,7 +1251,7 @@
  */
 void etk_tree2_row_select(Etk_Tree2_Row *row)
 {
-   if (!row || row->selected)
+   if (!row || row->selected || row->delete_me)
       return;
    _etk_tree2_row_select(row->tree, row, ETK_MODIFIER_NONE);
 }
@@ -1248,11 +1262,12 @@
  */
 void etk_tree2_row_unselect(Etk_Tree2_Row *row)
 {
-   if (!row || !row->selected)
+   if (!row || !row->selected || row->delete_me)
       return;
    
    row->selected = ETK_FALSE;
    etk_signal_emit(_etk_tree2_signals[ETK_TREE2_ROW_UNSELECTED_SIGNAL], 
ETK_OBJECT(row->tree), NULL, row);
+   
    if (!row->tree->frozen)
       etk_widget_redraw_queue(ETK_WIDGET(row->tree));
 }
@@ -1583,8 +1598,6 @@
    etk_signal_connect("key_down", ETK_OBJECT(tree), 
ETK_CALLBACK(_etk_tree2_key_down_cb), NULL);
 }
 
-/* TODO: last selected when deleted... */
-
 /* Destroys the tree */
 static void _etk_tree2_destructor(Etk_Tree2 *tree)
 {
@@ -2907,6 +2920,8 @@
    for (r = row->parent; r && r->unfolded; r = r->parent)
       r->num_visible_children -= row->num_visible_children + 1;
    
+   if (tree->last_selected_row == row)
+      tree->last_selected_row = NULL;
    tree->purge_pool = evas_list_append(tree->purge_pool, row);
    
    if (!tree->purge_job)
@@ -3179,7 +3194,7 @@
 /* Selects/Unselects the corresponding rows according to the modifiers */
 static void _etk_tree2_row_select(Etk_Tree2 *tree, Etk_Tree2_Row *row, 
Etk_Modifiers modifiers)
 {
-   if (!tree || !row)
+   if (!tree || !row || row->delete_me)
       return;
    
    if (!tree->multiple_select)
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_tree2.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- etk_tree2.h 5 Jan 2007 20:25:25 -0000       1.9
+++ etk_tree2.h 6 Jan 2007 19:23:10 -0000       1.10
@@ -211,12 +211,12 @@
 void  etk_tree2_row_data_set_full(Etk_Tree2_Row *row, void *data, void 
(*free_cb)(void *data));
 void *etk_tree2_row_data_get(Etk_Tree2_Row *row);
 
-/* TODO: Etk_Tree2_Row *etk_tree2_selected_row_get(Etk_Tree2 *tree); */
-void     etk_tree2_select_all(Etk_Tree2 *tree);
-void     etk_tree2_unselect_all(Etk_Tree2 *tree);
-void     etk_tree2_row_select(Etk_Tree2_Row *row);
-void     etk_tree2_row_unselect(Etk_Tree2_Row *row);
-Etk_Bool etk_tree2_row_is_selected(Etk_Tree2_Row *row);
+Etk_Tree2_Row *etk_tree2_selected_row_get(Etk_Tree2 *tree);
+void           etk_tree2_select_all(Etk_Tree2 *tree);
+void           etk_tree2_unselect_all(Etk_Tree2 *tree);
+void           etk_tree2_row_select(Etk_Tree2_Row *row);
+void           etk_tree2_row_unselect(Etk_Tree2_Row *row);
+Etk_Bool       etk_tree2_row_is_selected(Etk_Tree2_Row *row);
 
 void     etk_tree2_row_fold(Etk_Tree2_Row *row);
 void     etk_tree2_row_unfold(Etk_Tree2_Row *row);



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