Enlightenment CVS committal Author : moom Project : e17 Module : proto
Dir : e17/proto/etk/src/lib Modified Files: etk_tree.c etk_tree.h Log Message: * Add etk_tree_scrolled_view_get() =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tree.c,v retrieving revision 1.67 retrieving revision 1.68 diff -u -3 -r1.67 -r1.68 --- etk_tree.c 26 Jul 2006 14:57:18 -0000 1.67 +++ etk_tree.c 29 Jul 2006 20:09:06 -0000 1.68 @@ -1177,47 +1177,6 @@ } /** - * @brief Makes the tree scroll to show the row - * @param row the row up to which you want to scroll - * @param center_the_row ETK_TRUE if you want the row to be centered - */ -void etk_tree_row_scroll_to(Etk_Tree_Row *row, Etk_Bool center_the_row) -{ - Etk_Tree *tree; - Etk_Tree_Row *r; - int row_offset; - int tree_height; - int i; - int new_xoffset; - - if (!row || !(tree = row->tree)) - return; - - for (r = tree->root.first_child, i = 0; r; r = etk_tree_next_row_get(r, ETK_TRUE, ETK_FALSE), i++) - { - if (r == row) - { - row_offset = i * tree->row_height; - tree_height = tree->grid->inner_geometry.h; - - /* If the row is already entirely visible, we do nothing */ - if (!center_the_row && (row_offset >= tree->yoffset && (row_offset + tree->row_height) <= (tree->yoffset + tree_height))) - return; - - if (center_the_row) - new_xoffset = row_offset + (tree->row_height - tree_height) / 2; - else if (row_offset < tree->yoffset) - new_xoffset = row_offset; - else - new_xoffset = row_offset - tree_height + tree->row_height; - - etk_range_value_set(etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(tree->scrolled_view)), new_xoffset); - return; - } - } -} - -/** * @brief Selects the row * @param row the row to select */ @@ -1323,6 +1282,60 @@ { etk_signal_emit_by_name("scroll_size_changed", ETK_OBJECT(row->tree->grid), NULL); etk_widget_redraw_queue(ETK_WIDGET(row->tree->grid)); + } +} + +/** + * @brief Gets the scrolled view of the tree. + * It can be used to change the scrollbars' policy, or to get the scroll value + * @param tree a tree + * @return Returns the scrolled view of the tree + */ +Etk_Scrolled_View *etk_tree_scrolled_view_get(Etk_Tree *tree) +{ + if (!tree) + return NULL; + return ETK_SCROLLED_VIEW(tree->scrolled_view); +} + +/** + * @brief Makes the tree scroll to show the row + * @param row the row up to which you want to scroll + * @param center_the_row ETK_TRUE if you want the row to be centered + */ +void etk_tree_row_scroll_to(Etk_Tree_Row *row, Etk_Bool center_the_row) +{ + Etk_Tree *tree; + Etk_Tree_Row *r; + int row_offset; + int tree_height; + int i; + int new_xoffset; + + if (!row || !(tree = row->tree)) + return; + + for (r = tree->root.first_child, i = 0; r; r = etk_tree_next_row_get(r, ETK_TRUE, ETK_FALSE), i++) + { + if (r == row) + { + row_offset = i * tree->row_height; + tree_height = tree->grid->inner_geometry.h; + + /* If the row is already entirely visible, we do nothing */ + if (!center_the_row && (row_offset >= tree->yoffset && (row_offset + tree->row_height) <= (tree->yoffset + tree_height))) + return; + + if (center_the_row) + new_xoffset = row_offset + (tree->row_height - tree_height) / 2; + else if (row_offset < tree->yoffset) + new_xoffset = row_offset; + else + new_xoffset = row_offset - tree_height + tree->row_height; + + etk_range_value_set(etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(tree->scrolled_view)), new_xoffset); + return; + } } } =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tree.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- etk_tree.h 18 May 2006 13:13:33 -0000 1.23 +++ etk_tree.h 29 Jul 2006 20:09:06 -0000 1.24 @@ -210,7 +210,6 @@ void etk_tree_row_data_set_full(Etk_Tree_Row *row, void *data, void (*free_cb)(void *data)); void *etk_tree_row_data_get(Etk_Tree_Row *row); -void etk_tree_row_scroll_to(Etk_Tree_Row *row, Etk_Bool center_the_row); void etk_tree_row_select(Etk_Tree_Row *row); void etk_tree_row_unselect(Etk_Tree_Row *row); Etk_Tree_Row *etk_tree_selected_row_get(Etk_Tree *tree); @@ -218,6 +217,9 @@ void etk_tree_row_expand(Etk_Tree_Row *row); void etk_tree_row_collapse(Etk_Tree_Row *row); + +Etk_Scrolled_View *etk_tree_scrolled_view_get(Etk_Tree *tree); +void etk_tree_row_scroll_to(Etk_Tree_Row *row, Etk_Bool center_the_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