Enlightenment CVS committal Author : doursse Project : e17 Module : proto
Dir : e17/proto/epdf/src/bin Modified Files: epdf_ewl_test.c Log Message: use ewl_list instead of ewl_tree in the ewl test =================================================================== RCS file: /cvs/e/e17/proto/epdf/src/bin/epdf_ewl_test.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- epdf_ewl_test.c 17 Apr 2006 18:06:10 -0000 1.2 +++ epdf_ewl_test.c 20 Dec 2006 21:19:48 -0000 1.3 @@ -50,25 +50,29 @@ int main (int argc, char *argv[]) { + Ecore_List *str_data = NULL; Ewl_Widget *window; Ewl_Widget *table; Ewl_Widget *list; + Ewl_Model *model; + Ewl_View *view; Ewl_Widget *tree; Ewl_Widget *pdf; - Ewl_Widget *row; + Ewl_Widget *sp; Ecore_List *index; Epdf_Document *document; int page_count; int i; - ewl_init (&argc, (char **)argv); - if (argc == 1) { printf ("Usage: %s pdf_file\n", argv[0]); - ewl_main_quit (); return -1; } + ewl_init (&argc, (char **)argv); + str_data = ecore_list_new(); + ecore_list_set_free_cb (str_data, free); + /* We open the pdf file */ pdf = ewl_pdf_new (); ewl_pdf_file_set (EWL_PDF (pdf), argv[1]); @@ -84,7 +88,7 @@ window = ewl_window_new (); ewl_window_title_set (EWL_WINDOW (window), "Ewl Pdf Test Application"); ewl_callback_append (window, EWL_CALLBACK_DELETE_WINDOW, - _quit_cb, NULL); + _quit_cb, str_data); table = ewl_table_new (2, 2, NULL); ewl_table_homogeneous_set (EWL_TABLE (table), FALSE); @@ -100,35 +104,40 @@ ewl_widget_show (tree); } - list = ewl_tree_new (1); - ewl_tree_headers_visible_set (EWL_TREE (list), FALSE); + sp = ewl_scrollpane_new (); if (index) - ewl_table_add (EWL_TABLE (table), list, 1, 1, 2, 2); + ewl_table_add (EWL_TABLE (table), sp, 1, 1, 2, 2); else - ewl_table_add (EWL_TABLE (table), list, 1, 1, 1, 2); - ewl_widget_show (list); - - ewl_table_add (EWL_TABLE (table), pdf, 2, 2, 1, 2); - ewl_widget_show (pdf); + ewl_table_add (EWL_TABLE (table), sp, 1, 1, 1, 2); + ewl_widget_show (sp); page_count = epdf_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), - pdf); + 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), + pdf); + ewl_container_child_append (EWL_CONTAINER (sp), list); + ewl_widget_show (list); + + ewl_table_add (EWL_TABLE (table), pdf, 2, 2, 1, 2); + ewl_widget_show (pdf); + ewl_widget_show (window); ewl_main (); @@ -138,6 +147,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(); } @@ -145,13 +160,18 @@ static void _change_page_cb (Ewl_Widget *widget, void *ev_data, void *user_data) { - Ewl_Pdf *pdf; - int row_number; + Ewl_Pdf *pdf; + 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"); pdf = EWL_PDF (user_data); - if (row_number != ewl_pdf_page_get (pdf)) { - ewl_pdf_page_set (pdf, row_number); + if (idx->row != ewl_pdf_page_get (pdf)) { + ewl_pdf_page_set (pdf, idx->row); ewl_callback_call (EWL_WIDGET (pdf), 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