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