Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto
Dir : e17/proto/etk/src/lib Modified Files: etk_tree.c Log Message: - add show / hide events to tree rows (need to look at hide) =================================================================== RCS file: /cvs/e/e17/proto/etk/src/lib/etk_tree.c,v retrieving revision 1.61 retrieving revision 1.62 diff -u -3 -r1.61 -r1.62 --- etk_tree.c 15 Apr 2006 10:52:02 -0000 1.61 +++ etk_tree.c 16 Apr 2006 11:47:27 -0000 1.62 @@ -63,7 +63,9 @@ ETK_TREE_ROW_COLLAPSED_SIGNAL, ETK_TREE_ROW_MOUSE_IN_SIGNAL, ETK_TREE_ROW_MOUSE_OUT_SIGNAL, - ETK_TREE_ROW_MOUSE_MOVE_SIGNAL, + ETK_TREE_ROW_MOUSE_MOVE_SIGNAL, + ETK_TREE_ROW_SHOWN_SIGNAL, + ETK_TREE_ROW_HIDDEN_SIGNAL, ETK_TREE_SELECT_ALL_SIGNAL, ETK_TREE_UNSELECT_ALL_SIGNAL, ETK_TREE_NUM_SIGNALS @@ -180,7 +182,9 @@ _etk_tree_signals[ETK_TREE_ROW_COLLAPSED_SIGNAL] = etk_signal_new("row_collapsed", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); _etk_tree_signals[ETK_TREE_ROW_MOUSE_IN_SIGNAL] = etk_signal_new("row_mouse_in", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); _etk_tree_signals[ETK_TREE_ROW_MOUSE_OUT_SIGNAL] = etk_signal_new("row_mouse_out", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); - _etk_tree_signals[ETK_TREE_ROW_MOUSE_MOVE_SIGNAL] = etk_signal_new("row_mouse_move", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); + _etk_tree_signals[ETK_TREE_ROW_MOUSE_MOVE_SIGNAL] = etk_signal_new("row_mouse_move", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); + _etk_tree_signals[ETK_TREE_ROW_SHOWN_SIGNAL] = etk_signal_new("row_shown", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); + _etk_tree_signals[ETK_TREE_ROW_HIDDEN_SIGNAL] = etk_signal_new("row_hidden", tree_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL); _etk_tree_signals[ETK_TREE_SELECT_ALL_SIGNAL] = etk_signal_new("select_all", tree_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); _etk_tree_signals[ETK_TREE_UNSELECT_ALL_SIGNAL] = etk_signal_new("unselect_all", tree_type, -1, etk_marshaller_VOID__VOID, NULL, NULL); @@ -2085,6 +2089,28 @@ } } +/* Called when the row is shown */ +static void _etk_tree_row_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Etk_Tree_Row_Objects *row_objects; + + if (!(row_objects = data) || !row_objects->row) + return; + + etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SHOWN_SIGNAL], ETK_OBJECT(row_objects->row->tree), NULL, row_objects->row); +} + +/* Called when the row is hidden */ +static void _etk_tree_row_hide_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Etk_Tree_Row_Objects *row_objects; + + if (!(row_objects = data) || !row_objects->row) + return; + + etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_HIDDEN_SIGNAL], ETK_OBJECT(row_objects->row->tree), NULL, row_objects->row); +} + /* Called when the tree is focused */ static void _etk_tree_focus_cb(Etk_Object *object, void *event, void *data) { @@ -2458,6 +2484,8 @@ else edje_object_signal_emit(row_objects->background, "unselected" , ""); +// etk_signal_emit(_etk_tree_signals[ETK_TREE_ROW_SHOWN_SIGNAL], ETK_OBJECT(tree), NULL, row); + if (row_objects->expander) { if (row->first_child) @@ -2661,6 +2689,8 @@ evas_object_event_callback_add(new_row_objects->background, EVAS_CALLBACK_MOUSE_MOVE, _etk_tree_row_mouse_move_cb, new_row_objects); evas_object_event_callback_add(new_row_objects->background, EVAS_CALLBACK_MOUSE_IN, _etk_tree_row_mouse_in_cb, new_row_objects); evas_object_event_callback_add(new_row_objects->background, EVAS_CALLBACK_MOUSE_OUT, _etk_tree_row_mouse_out_cb, new_row_objects); + evas_object_event_callback_add(new_row_objects->background, EVAS_CALLBACK_SHOW, _etk_tree_row_show_cb, new_row_objects); + evas_object_event_callback_add(new_row_objects->background, EVAS_CALLBACK_HIDE, _etk_tree_row_hide_cb, new_row_objects); etk_widget_member_object_add(tree->grid, new_row_objects->background); } ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs