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

Reply via email to