Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : proto

Dir     : e17/proto/epdf/src/bin


Modified Files:
        epdf_etk_test.c 


Log Message:
use etk_tree2 for the etk test. There is still a segfault that I don't 
understand when one closes the window

===================================================================
RCS file: /cvs/e/e17/proto/epdf/src/bin/epdf_etk_test.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- epdf_etk_test.c     3 Sep 2006 07:49:45 -0000       1.4
+++ epdf_etk_test.c     13 Jan 2007 19:51:24 -0000      1.5
@@ -8,54 +8,23 @@
 
 
 static void _quit_cb(void *data);
-static void _change_page_cb (Etk_Object *object, Etk_Tree_Row *row, void 
*data);
-
-void
-_tree_fill (Etk_Pdf *pdf, Etk_Tree *tree, Etk_Tree_Col *col, Etk_Tree_Row 
*row, Ecore_List *items)
-{
-  Etk_Tree_Row    *prow;
-  Epdf_Index_Item *item;
-
-  if (!items)
-    return;
-  
-  ecore_list_goto_first (items);
-  while ((item = ecore_list_next (items))) {
-    char       *buf;
-    Ecore_List *c;
-    int         *num;
-
-    buf = strdup (epdf_index_item_title_get (item));
-    if (!row)
-      prow = etk_tree_append (tree, col, buf, NULL);
-    else
-      prow = etk_tree_append_to_row (row, col, buf, NULL);
-      
-    num = (int *)malloc (sizeof (int));
-    *num = epdf_index_item_page_get (etk_pdf_pdf_document_get (pdf), item);
-    etk_tree_row_data_set (prow, num);
-    free (buf);
-    c = epdf_index_item_children_get (item);
-    if (c) {
-      _tree_fill (pdf, tree, col, prow, c);
-    }
-  }
-}
+static void _tree2_fill (Etk_Pdf *pdf, Etk_Tree2 *tree, Etk_Tree2_Col *col, 
Etk_Tree2_Row *row, Ecore_List *items);
+static void _change_page_cb (Etk_Object *object, Etk_Tree2_Row *row, 
Etk_Event_Mouse_Up *event, void *data);
 
 int
 main (int argc, char *argv[])
 {
-  Etk_Widget   *window;
-  Etk_Widget   *table;
-  Etk_Widget   *tree;
-  Etk_Widget   *list;
-  Etk_Widget   *pdf;
-  Etk_Tree_Col *col;
-  Etk_Tree_Row *row;
-  Ecore_List   *index;
+  Etk_Widget     *window;
+  Etk_Widget     *table;
+  Etk_Widget     *tree;
+  Etk_Widget     *list;
+  Etk_Widget     *pdf;
+  Etk_Tree2_Col  *col;
+  Etk_Tree2_Row  *row;
+  Ecore_List     *index;
   Epdf_Document  *document;
-  int           page_count;
-  int           i;
+  int             page_count;
+  int             i;
 
   etk_init (NULL,NULL);
 
@@ -85,54 +54,65 @@
   table = etk_table_new (2, 2, ETK_FALSE);
   etk_container_add (ETK_CONTAINER (window), table);
   etk_widget_show (table);
-  
+
   if (index) {
-    tree = etk_tree_new ();
-    etk_tree_headers_visible_set (ETK_TREE (tree), ETK_FALSE);
-    etk_widget_size_request_set (tree, 60, -1);
-    etk_tree_mode_set (ETK_TREE(tree), ETK_TREE_MODE_TREE);
-    col = etk_tree_col_new (ETK_TREE(tree), "",
-                            etk_tree_model_text_new (ETK_TREE (tree)),
-                            60);
-    etk_tree_build (ETK_TREE (tree));
-    etk_tree_freeze (ETK_TREE (tree));
-    _tree_fill (ETK_PDF (pdf), ETK_TREE (tree), col, NULL, index);
-    etk_tree_thaw (ETK_TREE (tree));
+    Etk_Tree2_Col *col;
+
+    tree = etk_tree2_new ();
+    etk_tree2_mode_set (ETK_TREE2 (tree), ETK_TREE2_MODE_TREE);
+    etk_tree2_multiple_select_set (ETK_TREE2 (tree), ETK_FALSE);
+
+    /* column */
+    col = etk_tree2_col_new (ETK_TREE2 (tree), "Column", 130, 0.0);
+    etk_tree2_col_model_add (col, etk_tree2_model_text_new());
+
+    etk_tree2_build (ETK_TREE2 (tree));
+
+    /* rows */
+    _tree2_fill (ETK_PDF (pdf), ETK_TREE2 (tree), col, NULL, index);
     epdf_index_delete (index);
-    etk_signal_connect ("row_selected", ETK_OBJECT (tree),
+
+    /* change page */
+    etk_signal_connect ("row_clicked", ETK_OBJECT (tree),
                         ETK_CALLBACK(_change_page_cb), pdf);
+
+    /* we attach and show */
     etk_table_attach_default (ETK_TABLE (table), tree, 0, 0, 0, 0);
     etk_widget_show (tree);
   }
 
-  list = etk_tree_new ();
-  etk_tree_headers_visible_set (ETK_TREE (list), FALSE);
-  etk_widget_size_request_set (list, 60, -1);
-  if  (index)
-    etk_table_attach_default (ETK_TABLE (table), list, 0, 0, 1, 1);
-  else
-    etk_table_attach_default (ETK_TABLE (table), list, 0, 0, 0, 1);
-  etk_widget_show (list);
+  list = etk_tree2_new ();
+  etk_tree2_headers_visible_set (ETK_TREE2 (list), FALSE);
+  etk_tree2_mode_set (ETK_TREE2 (list), ETK_TREE2_MODE_LIST);
+  etk_tree2_multiple_select_set (ETK_TREE2 (list), ETK_FALSE);
+
+  /* column */
+  col = etk_tree2_col_new (ETK_TREE2 (list), "", 60, 0.0);
+  etk_tree2_col_model_add (col, etk_tree2_model_int_new());
 
-  etk_signal_connect ("row_selected", ETK_OBJECT (list),
-                      ETK_CALLBACK(_change_page_cb), pdf);
-  etk_tree_mode_set (ETK_TREE(list), ETK_TREE_MODE_LIST);
-  col = etk_tree_col_new (ETK_TREE(list), "",
-                          etk_tree_model_int_new (ETK_TREE (list)),
-                          60);
-  etk_tree_build (ETK_TREE (list));
+  etk_tree2_build (ETK_TREE2 (list));
 
+  /* rows */
   page_count = epdf_document_page_count_get (ETK_PDF (pdf)->pdf_document);
-  etk_tree_freeze (ETK_TREE (list));
   for (i = 0; i < page_count; i++) {
     int  *num;
 
-    row = etk_tree_append (ETK_TREE (list), col, i + 1, NULL);
+    row = etk_tree2_row_append (ETK_TREE2 (list), NULL, col, i + 1, NULL);
     num = (int *)malloc (sizeof (int));
     *num = i;
-    etk_tree_row_data_set (row, num);
+    etk_tree2_row_data_set_full (row, num, free);
   }
-  etk_tree_thaw (ETK_TREE (list));
+
+  /* change page */
+  etk_signal_connect ("row_clicked", ETK_OBJECT (list),
+                      ETK_CALLBACK(_change_page_cb), pdf);
+
+  /* we attach and show */
+  if  (index)
+    etk_table_attach_default (ETK_TABLE (table), list, 0, 0, 1, 1);
+  else
+    etk_table_attach_default (ETK_TABLE (table), list, 0, 0, 0, 1);
+  etk_widget_show (list);
 
   etk_table_attach_default (ETK_TABLE (table), pdf, 1, 1, 0, 1);
   etk_widget_show (pdf);
@@ -141,6 +121,8 @@
 
   etk_main ();
 
+  etk_shutdown ();
+
   return 0;
 }
 
@@ -151,14 +133,43 @@
 }
 
 static void
-_change_page_cb (Etk_Object *object, Etk_Tree_Row *row, void *data)
+_tree2_fill (Etk_Pdf *pdf, Etk_Tree2 *tree, Etk_Tree2_Col *col, Etk_Tree2_Row 
*row, Ecore_List *items)
+{
+  Etk_Tree2_Row   *prow;
+  Epdf_Index_Item *item;
+
+  if (!items)
+    return;
+  
+  ecore_list_goto_first (items);
+  while ((item = ecore_list_next (items))) {
+    char       *buf;
+    Ecore_List *c;
+    int        *num;
+
+    buf = strdup (epdf_index_item_title_get (item));
+    prow = etk_tree2_row_append (tree, row, col, buf, NULL);
+      
+    num = (int *)malloc (sizeof (int));
+    *num = epdf_index_item_page_get (etk_pdf_pdf_document_get (pdf), item);
+    etk_tree2_row_data_set_full (prow, num, free);
+    free (buf);
+    c = epdf_index_item_children_get (item);
+    if (c) {
+      _tree2_fill (pdf, tree, col, prow, c);
+    }
+  }
+}
+
+static void
+_change_page_cb (Etk_Object *object, Etk_Tree2_Row *row, Etk_Event_Mouse_Up 
*event, void *data)
 {
-  Etk_Tree *tree;
-  Etk_Pdf  *pdf;
-  int       row_number;
+  Etk_Tree2 *tree;
+  Etk_Pdf   *pdf;
+  int        row_number;
 
-  tree = ETK_TREE (object);
+  tree = ETK_TREE2 (object);
   pdf = ETK_PDF (data);
-  row_number = *(int *)etk_tree_row_data_get (row);
+  row_number = *(int *)etk_tree2_row_data_get (row);
   etk_pdf_page_set (pdf, row_number);
 }



-------------------------------------------------------------------------
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