Enlightenment CVS committal Author : pfritz Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src/lib Modified Files: ewl_row.c ewl_row.h ewl_tree.c ewl_tree2.c Log Message: - the row doesn't need a row as a header, a container is sufficient - minor things in tree2 =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_row.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- ewl_row.c 29 Mar 2007 19:25:09 -0000 1.24 +++ ewl_row.c 4 May 2007 18:23:14 -0000 1.25 @@ -72,7 +72,7 @@ * header. */ void -ewl_row_header_set(Ewl_Row *row, Ewl_Row *header) +ewl_row_header_set(Ewl_Row *row, Ewl_Container *header) { DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR("row", row); @@ -160,13 +160,13 @@ int width; Ewl_Container *hdr; - hdr = EWL_CONTAINER(row->header); - ewl_container_child_iterate_begin(EWL_CONTAINER(hdr)); + hdr = row->header; + ewl_container_child_iterate_begin(hdr); /* * Get the first child of the header. */ - align = EWL_OBJECT(ewl_container_child_next(EWL_CONTAINER(hdr))); + align = EWL_OBJECT(ewl_container_child_next(hdr)); if (align) x = MAX(ewl_object_current_x_get(align), CURRENT_X(w)); else @@ -175,9 +175,9 @@ /* * Iterate over the children and position the header children. */ - ewl_container_child_iterate_begin(EWL_CONTAINER(hdr)); + ewl_container_child_iterate_begin(hdr); while ((child = EWL_OBJECT(ewl_container_child_next(c)))) { - align = EWL_OBJECT(ewl_container_child_next(EWL_CONTAINER(hdr))); + align = EWL_OBJECT(ewl_container_child_next(hdr)); if (align && VISIBLE(align)) width = ewl_object_current_x_get(align) + ewl_object_current_w_get(align) - x; =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_row.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- ewl_row.h 4 Mar 2007 00:52:01 -0000 1.16 +++ ewl_row.h 4 May 2007 18:23:14 -0000 1.17 @@ -47,13 +47,13 @@ struct Ewl_Row { Ewl_Container container; /**< Inherit from Ewl_Container */ - Ewl_Row *header; /**< The header row */ + Ewl_Container *header; /**< The header row */ }; Ewl_Widget *ewl_row_new(void); int ewl_row_init(Ewl_Row *row); -void ewl_row_header_set(Ewl_Row *row, Ewl_Row *header); +void ewl_row_header_set(Ewl_Row *row, Ewl_Container *header); Ewl_Widget *ewl_row_column_get(Ewl_Row *row, short n); /* =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_tree.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -3 -r1.49 -r1.50 --- ewl_tree.c 2 Apr 2007 19:35:11 -0000 1.49 +++ ewl_tree.c 4 May 2007 18:23:14 -0000 1.50 @@ -292,7 +292,7 @@ DRETURN_PTR(NULL, DLEVEL_STABLE); } - ewl_row_header_set(EWL_ROW(row), EWL_ROW(tree->header)); + ewl_row_header_set(EWL_ROW(row), EWL_CONTAINER(tree->header)); ewl_widget_show(row); =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_tree2.c,v retrieving revision 1.77 retrieving revision 1.78 diff -u -3 -r1.77 -r1.78 --- ewl_tree2.c 2 Apr 2007 19:35:11 -0000 1.77 +++ ewl_tree2.c 4 May 2007 18:23:14 -0000 1.78 @@ -77,15 +77,15 @@ ewl_mvc_selected_change_cb_set(EWL_MVC(tree), ewl_tree2_cb_selected_change); - ewl_object_fill_policy_set(EWL_OBJECT(tree), - EWL_FLAG_FILL_SHRINK | EWL_FLAG_FILL_FILL); + ewl_object_fill_policy_set(EWL_OBJECT(tree), EWL_FLAG_FILL_ALL); tree->type = EWL_TREE_SELECTION_TYPE_CELL; tree->header = ewl_hpaned_new(); ewl_container_child_append(EWL_CONTAINER(tree), tree->header); ewl_widget_appearance_set(EWL_WIDGET(tree->header), "tree_header"); - ewl_object_fill_policy_set(EWL_OBJECT(tree->header), EWL_FLAG_FILL_HFILL); + ewl_object_fill_policy_set(EWL_OBJECT(tree->header), + EWL_FLAG_FILL_HFILL); ewl_callback_append(tree->header, EWL_CALLBACK_VALUE_CHANGED, ewl_tree2_cb_header_changed, tree); ewl_widget_show(tree->header); @@ -119,7 +119,7 @@ DCHECK_PARAM_PTR("tree", tree); DCHECK_TYPE("tree", tree, EWL_TREE2_TYPE); - if (tree->headers_visible == visible) + if (tree->headers_visible == !!visible) DRETURN(DLEVEL_STABLE); tree->headers_visible = !!visible; @@ -283,7 +283,10 @@ DCHECK_PARAM_PTR("tree", tree); DCHECK_TYPE("tree", tree, EWL_TREE2_TYPE); - tree->fixed = fixed; + if (tree->fixed == !!fixed) + DRETURN(DLEVEL_STABLE); + + tree->fixed = !!fixed; ewl_mvc_dirty_set(EWL_MVC(tree), TRUE); DLEAVE_FUNCTION(DLEVEL_STABLE); @@ -573,7 +576,13 @@ ewl_widget_appearance_set(h, "header"); ewl_widget_show(h); - c = view->header_fetch(model->header(mvc_data, column), column); + if (model->header) + c = view->header_fetch(model->header(mvc_data, column), + column); + else + c = view->header_fetch(NULL, column); + + /* XXX is this really a good idea to override the user's flags ? */ ewl_object_fill_policy_set(EWL_OBJECT(c), EWL_FLAG_FILL_HSHRINK | EWL_FLAG_FILL_HFILL); ewl_container_child_append(EWL_CONTAINER(h), c); @@ -668,6 +677,7 @@ ewl_mvc_view_get(EWL_MVC(tree)), mvc_data, i); + /* XXX why don't we skip before the headers are build? */ if (!model) DRETURN(DLEVEL_STABLE); @@ -688,13 +698,14 @@ unsigned int column; DCHECK_PARAM_PTR("tree", tree); + DCHECK_TYPE("tree", tree, EWL_TREE2_TYPE); DCHECK_PARAM_PTR("parent", parent); row_count = model->count(data); if (!row_count) DRETURN(DLEVEL_STABLE); - while (1) + while (TRUE) { Ewl_Widget *row, *node; @@ -709,7 +720,7 @@ if (!hidden) ewl_widget_show(node); row = ewl_row_new(); - ewl_row_header_set(EWL_ROW(row), EWL_ROW(tree->header)); + ewl_row_header_set(EWL_ROW(row), EWL_CONTAINER(tree->header)); ewl_container_child_append(EWL_CONTAINER(node), row); ewl_callback_append(row, EWL_CALLBACK_CLICKED, ewl_tree2_cb_row_clicked, node); @@ -888,7 +899,7 @@ DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR_RET("mvc", mvc, NULL); - DCHECK_TYPE_RET("mvc", mvc, EWL_MVC_TYPE, NULL); + DCHECK_TYPE_RET("mvc", mvc, EWL_TREE2_TYPE, NULL); tree = EWL_TREE2(mvc); r = ewl_container_child_get(EWL_CONTAINER(tree->rows), row); @@ -908,6 +919,10 @@ DCHECK_PARAM_PTR("tree", tree); DCHECK_TYPE("tree", tree, EWL_TREE2_TYPE); + if (tree->expansions) + DRETURN(DLEVEL_STABLE); + + /* this hash table never get freed */ tree->expansions = ecore_hash_new(NULL, NULL); ecore_hash_set_free_value(tree->expansions, ECORE_FREE_CB(ecore_list_destroy)); @@ -1045,6 +1060,7 @@ */ ewl_widget_configure(node->tree); + /* XXX is this really necessary, couldn't it be done inplace? */ tmp = ecore_list_new(); ecore_dlist_goto_first(EWL_CONTAINER(node)->children); @@ -1110,6 +1126,8 @@ */ ewl_widget_configure(node->tree); + /* XXX same here can't we just hide the widgets instead of + * appending them to a list? */ tmp = ecore_list_new(); ecore_dlist_goto_first(EWL_CONTAINER(node)->children); ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs