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