Enlightenment CVS committal Author : doursse Project : e17 Module : proto
Dir : e17/proto/edvi/src/bin Modified Files: edvi_etk_test.c edvi_ewl_test.c Log Message: fix a leak in edvi. use ewl_list instead of ewl_tree in the ewl test =================================================================== RCS file: /cvs/e/e17/proto/edvi/src/bin/edvi_etk_test.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- edvi_etk_test.c 11 Sep 2006 07:22:08 -0000 1.4 +++ edvi_etk_test.c 20 Dec 2006 20:40:46 -0000 1.5 @@ -31,7 +31,7 @@ printf ("[DVI] version : %s\n", edvi_version ()); if (!edvi_init (300, "cx", 4, 1.0, 1.0, - 0, 0, 0, 0, 255, 255, 255)) { + 0, 255, 255, 255, 0, 0, 0)) { return -1; } =================================================================== RCS file: /cvs/e/e17/proto/edvi/src/bin/edvi_ewl_test.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- edvi_ewl_test.c 16 Jul 2006 20:51:17 -0000 1.1 +++ edvi_ewl_test.c 20 Dec 2006 20:40:46 -0000 1.2 @@ -13,11 +13,14 @@ int main (int argc, char *argv[]) { + Ecore_List *str_data = NULL; Ewl_Widget *window; Ewl_Widget *hbox; Ewl_Widget *list; + Ewl_Model *model; + Ewl_View *view; Ewl_Widget *dvi; - Ewl_Widget *row; + Ewl_Widget *sp; Edvi_Document *document; int page_count; int i; @@ -30,11 +33,13 @@ printf ("[DVI] version : %s\n", edvi_version ()); if (!edvi_init (300, "cx", 4, 1.0, 1.0, - 0, 0, 0, 0, 255, 255, 255)) { + 0, 255, 255, 255, 0, 0, 0)) { return -1; } ewl_init (&argc, (char **)argv); + str_data = ecore_list_new(); + ecore_list_set_free_cb (str_data, free); /* We open the dvi file */ dvi = ewl_dvi_new (); @@ -50,38 +55,44 @@ window = ewl_window_new (); ewl_window_title_set (EWL_WINDOW (window), "Ewl Dvi Test Application"); ewl_callback_append (window, EWL_CALLBACK_DELETE_WINDOW, - _quit_cb, NULL); + _quit_cb, str_data); hbox = ewl_hbox_new (); ewl_box_homogeneous_set (EWL_BOX (hbox), FALSE); ewl_container_child_append (EWL_CONTAINER (window), hbox); ewl_widget_show (hbox); - list = ewl_tree_new (1); - ewl_tree_headers_visible_set (EWL_TREE (list), FALSE); - ewl_container_child_append (EWL_CONTAINER (hbox), list); - ewl_widget_show (list); - - ewl_container_child_append (EWL_CONTAINER (hbox), dvi); - ewl_widget_show (dvi); + sp = ewl_scrollpane_new (); + ewl_container_child_append (EWL_CONTAINER (hbox), sp); + ewl_widget_show (sp); page_count = edvi_document_page_count_get (document); for (i = 0; i < page_count; i++) { char row_text[64]; char *txt; - int *num; - txt = row_text; snprintf (row_text, 64, "%d", i + 1); - row = ewl_tree_text_row_add (EWL_TREE (list), NULL, &txt); - num = (int *)malloc (sizeof (int)); - *num = i; - ewl_widget_data_set (row, "row-number", num); - ewl_callback_append (EWL_WIDGET (row), - EWL_CALLBACK_CLICKED, - EWL_CALLBACK_FUNCTION (_change_page_cb), - dvi); + txt = strdup (row_text); + ecore_list_append(str_data, txt); } + + + model = ewl_model_ecore_list_get(); + view = ewl_label_view_get(); + + list = ewl_list_new (); + ewl_mvc_model_set(EWL_MVC(list), model); + ewl_mvc_view_set(EWL_MVC(list), view); + ewl_mvc_data_set(EWL_MVC(list), str_data); + ewl_callback_append (list, + EWL_CALLBACK_VALUE_CHANGED, + EWL_CALLBACK_FUNCTION (_change_page_cb), + dvi); + ewl_container_child_append (EWL_CONTAINER (sp), list); + ewl_widget_show (list); + + ewl_container_child_append (EWL_CONTAINER (hbox), dvi); + ewl_widget_show (dvi); ewl_widget_show (window); @@ -92,6 +103,12 @@ static void _quit_cb (Ewl_Widget * w, void *ev_data, void *user_data) { + Ecore_List *list; + + if (user_data) { + list = (Ecore_List *)user_data; + ecore_list_destroy (list); + } ewl_widget_destroy(w); ewl_main_quit(); edvi_shutdown (); @@ -101,12 +118,17 @@ _change_page_cb (Ewl_Widget *widget, void *ev_data, void *user_data) { Ewl_Dvi *dvi; - int row_number; + Ewl_List *list; + Ecore_List *el; + Ewl_Selection_Idx *idx; + + list = EWL_LIST(widget); + el = ewl_mvc_data_get(EWL_MVC(list)); + idx = ewl_mvc_selected_get(EWL_MVC(list)); - row_number = *(int *)ewl_widget_data_get (widget, "row-number"); dvi = EWL_DVI (user_data); - if (row_number != ewl_dvi_page_get (dvi)) { - ewl_dvi_page_set (dvi, row_number); + if (idx->row != ewl_dvi_page_get (dvi)) { + ewl_dvi_page_set (dvi, idx->row); ewl_callback_call (EWL_WIDGET (dvi), EWL_CALLBACK_REVEAL); } } ------------------------------------------------------------------------- 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