Enlightenment CVS committal

Author  : moom16
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/bin


Modified Files:
        etk_tree_test.c 


Log Message:
* Fix a segv with Etk_Tree (a segv of exhibit) and fix the emission 
of the signal "row_clicked" (event->flags could still be incorrect in 
some cases)


===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_tree_test.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- etk_tree_test.c     11 Feb 2006 00:28:31 -0000      1.22
+++ etk_tree_test.c     14 Feb 2006 18:39:04 -0000      1.23
@@ -6,6 +6,8 @@
 static void _etk_test_tree_add_items(Etk_Tree *tree, int n);
 static void _etk_test_tree_row_selected(Etk_Object *object, Etk_Tree_Row *row, 
void *data);
 static void _etk_test_tree_row_unselected(Etk_Object *object, Etk_Tree_Row 
*row, void *data);
+static void _etk_test_tree_row_clicked(Etk_Object *object, Etk_Tree_Row *row, 
Etk_Event_Mouse_Up_Down *event, void *data);
+static void _etk_test_tree_row_activated(Etk_Object *object, Etk_Tree_Row 
*row, void *data);
 static void _etk_test_tree_checkbox_toggled_cb(Etk_Object *object, 
Etk_Tree_Row *row, void *data);
 static void _etk_test_tree_clear_list_cb(Etk_Object *object, void *data);
 static void _etk_test_tree_add_5_cb(Etk_Object *object, void *data);
@@ -58,19 +60,19 @@
    etk_tree_col_expand_set(col1, ETK_TRUE);
    col2 = etk_tree_col_new(ETK_TREE(tree), _("Column 2"), 
etk_tree_model_double_new(ETK_TREE(tree)), 60);
    col3 = etk_tree_col_new(ETK_TREE(tree), _("Column 3"), 
etk_tree_model_image_new(ETK_TREE(tree), ETK_TREE_FROM_FILE), 60);
-   //col4 = etk_tree_col_new(ETK_TREE(tree), _("Column 4"), 
etk_tree_model_checkbox_new(ETK_TREE(tree)), 40);
+   col4 = etk_tree_col_new(ETK_TREE(tree), _("Column 4"), 
etk_tree_model_checkbox_new(ETK_TREE(tree)), 40);
    etk_tree_build(ETK_TREE(tree));
-   //etk_signal_connect("cell_value_changed", ETK_OBJECT(col4), 
ETK_CALLBACK(_etk_test_tree_checkbox_toggled_cb), NULL);
+   etk_signal_connect("cell_value_changed", ETK_OBJECT(col4), 
ETK_CALLBACK(_etk_test_tree_checkbox_toggled_cb), NULL);
 
    etk_tree_freeze(ETK_TREE(tree));
    for (i = 0; i < 1000; i++)
    {
       row = etk_tree_append(ETK_TREE(tree), col1, etk_theme_icon_theme_get(), 
"places/user-home_16", _("Row1"),
-         col2, 10.0, col3, PACKAGE_DATA_DIR "/images/1star.png", /*col4, 
ETK_FALSE,*/ NULL);
+         col2, 10.0, col3, PACKAGE_DATA_DIR "/images/1star.png", col4, 
ETK_FALSE, NULL);
       row = etk_tree_append_to_row(row, col1, etk_theme_icon_theme_get(), 
"places/folder_16", _("Row2"),
-         col2, 20.0, col3, PACKAGE_DATA_DIR "/images/2stars.png", /*col4, 
ETK_FALSE,*/ NULL);
+         col2, 20.0, col3, PACKAGE_DATA_DIR "/images/2stars.png", col4, 
ETK_FALSE, NULL);
       etk_tree_append_to_row(row, col1, etk_theme_icon_theme_get(), 
"mimetypes/text-x-generic_16", _("Row3"),
-         col2, 30.0, col3, PACKAGE_DATA_DIR "/images/3stars.png", /*col4, 
ETK_TRUE,*/ NULL);
+         col2, 30.0, col3, PACKAGE_DATA_DIR "/images/3stars.png", col4, 
ETK_TRUE, NULL);
    }
    etk_tree_thaw(ETK_TREE(tree));
 
@@ -92,6 +94,8 @@
    _etk_test_tree_add_items(ETK_TREE(tree), 5000);
    etk_signal_connect("row_selected", ETK_OBJECT(tree), 
ETK_CALLBACK(_etk_test_tree_row_selected), NULL);
    etk_signal_connect("row_unselected", ETK_OBJECT(tree), 
ETK_CALLBACK(_etk_test_tree_row_unselected), NULL);
+   etk_signal_connect("row_clicked", ETK_OBJECT(tree), 
ETK_CALLBACK(_etk_test_tree_row_clicked), NULL);
+   etk_signal_connect("row_activated", ETK_OBJECT(tree), 
ETK_CALLBACK(_etk_test_tree_row_activated), NULL);
 
    /* Frame */
    frame = etk_frame_new(_("List Actions"));
@@ -166,15 +170,38 @@
    int col2_value;
 
    tree = ETK_TREE(object);
-   printf(_("Row selected %p %p\n"), object, row);
    etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, 
&col1_string, etk_tree_nth_col_get(tree, 1), &col2_value, 
etk_tree_nth_col_get(tree, 2), &col3_path, NULL);
-   printf("\"%s\" %d %s\n\n", col1_string, col2_value, col3_path);
+   printf(_("Row selected %p: \"%s\" %d %s\n"), row, col1_string, col2_value, 
col3_path);
 }
 
 /* Called when a row is unselected */
 static void _etk_test_tree_row_unselected(Etk_Object *object, Etk_Tree_Row 
*row, void *data)
 {
-   printf(_("Row unselected %p %p\n"), object, row);
+   printf(_("Row unselected %p\n"), row);
+}
+
+/* Called when a row is clicked */
+static void _etk_test_tree_row_clicked(Etk_Object *object, Etk_Tree_Row *row, 
Etk_Event_Mouse_Up_Down *event, void *data)
+{
+   printf(_("Row clicked %p. Button: %d. "), row, event->button);
+   if (event->flags & EVAS_BUTTON_TRIPLE_CLICK)
+      printf(_("Triple Click\n"));
+   else if (event->flags & EVAS_BUTTON_DOUBLE_CLICK)
+      printf(_("Double Click\n"));
+   else
+      printf(_("Single Click\n"));
+}
+
+/* Called when a row is activated */
+static void _etk_test_tree_row_activated(Etk_Object *object, Etk_Tree_Row 
*row, void *data)
+{
+   Etk_Tree *tree;
+   char *col1_string, *col3_path;
+   int col2_value;
+
+   tree = ETK_TREE(object);
+   etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, 
&col1_string, etk_tree_nth_col_get(tree, 1), &col2_value, 
etk_tree_nth_col_get(tree, 2), &col3_path, NULL);
+   printf(_("Row activated %p: \"%s\" %d %s\n"), row, col1_string, col2_value, 
col3_path);
 }
 
 /* Called when a checkbox of the tree is toggled */




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to