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

Reply via email to