Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src


Modified Files:
        ewl_scrollpane.c ewl_tree.c ewl_tree.h 


Log Message:
A little progress on horizontal scrolling for the tree.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_scrollpane.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -3 -r1.37 -r1.38
--- ewl_scrollpane.c    21 Apr 2004 05:18:52 -0000      1.37
+++ ewl_scrollpane.c    15 May 2004 07:29:04 -0000      1.38
@@ -367,6 +367,7 @@
        DCHECK_PARAM_PTR("w", w);
        DCHECK_PARAM_PTR("user_data", user_data);
 
+       ewl_callback_call(user_data, EWL_CALLBACK_VALUE_CHANGED);
        ewl_widget_configure(user_data);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -382,6 +383,7 @@
        DCHECK_PARAM_PTR("w", w);
        DCHECK_PARAM_PTR("user_data", user_data);
 
+       ewl_callback_call(user_data, EWL_CALLBACK_VALUE_CHANGED);
        ewl_widget_configure(user_data);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_tree.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- ewl_tree.c  21 Apr 2004 05:18:52 -0000      1.36
+++ ewl_tree.c  15 May 2004 07:29:05 -0000      1.37
@@ -86,6 +86,8 @@
 
        tree->scrollarea = ewl_scrollpane_new();
        ewl_container_append_child(EWL_CONTAINER(tree), tree->scrollarea);
+       ewl_callback_append(tree->scrollarea, EWL_CALLBACK_VALUE_CHANGED,
+                           ewl_tree_hscroll_cb, tree);
        ewl_widget_show(tree->scrollarea);
 
        ewl_container_set_redirect(EWL_CONTAINER(tree),
@@ -403,16 +405,22 @@
 
 void ewl_tree_configure_cb(Ewl_Widget *w, void *ev_data, void *user_data)
 {
-       int h;
+       int x, width, height;
+       double scroll;
        Ewl_Tree *tree = EWL_TREE(w);
        DENTER_FUNCTION(DLEVEL_STABLE);
 
-       ewl_object_request_geometry(EWL_OBJECT(tree->header), CURRENT_X(tree),
-                                   CURRENT_Y(tree), CURRENT_W(tree), 1);
-       h = ewl_object_get_current_h(EWL_OBJECT(tree->header));
+       scroll = ewl_scrollpane_get_hscrollbar_value(EWL_SCROLLPANE(tree->scrollarea));
+       width = ewl_object_get_preferred_w(EWL_OBJECT(tree->header));
+       x = CURRENT_X(tree);
+       if (scroll > 0 && width > CURRENT_W(tree))
+               x -= (int)((double)scroll * (double)(width - CURRENT_W(tree)));
+       ewl_object_request_geometry(EWL_OBJECT(tree->header), x, CURRENT_Y(tree),
+                                   CURRENT_W(tree), width);
+       height = ewl_object_get_current_h(EWL_OBJECT(tree->header));
        ewl_object_request_geometry(EWL_OBJECT(tree->scrollarea),
-                                   CURRENT_X(tree), CURRENT_Y(tree) + h,
-                                   CURRENT_W(tree), CURRENT_H(tree) - h);
+                                   CURRENT_X(tree), CURRENT_Y(tree) + height,
+                                   CURRENT_W(tree), CURRENT_H(tree) - height);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -689,3 +697,13 @@
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
+
+void
+ewl_tree_hscroll_cb(Ewl_Widget *w, void *ev_data, void *user_data)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       ewl_widget_configure(user_data);
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_tree.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- ewl_tree.h  21 Apr 2004 05:18:52 -0000      1.20
+++ ewl_tree.h  15 May 2004 07:29:05 -0000      1.21
@@ -103,6 +103,7 @@
 
 void ewl_tree_row_select_cb(Ewl_Widget *w, void *ev_data, void *user_data);
 void ewl_tree_configure_cb(Ewl_Widget *w, void *ev_data, void *user_data);
+void ewl_tree_hscroll_cb(Ewl_Widget *w, void *ev_data, void *user_data);
 void ewl_tree_child_resize_cb(Ewl_Container *c);
 
 /**




-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to