Enlightenment CVS committal Author : chaos Project : e17 Module : proto
Dir : e17/proto/entropy/src/plugins Modified Files: etk_list_viewer.c Log Message: * Port list viewer to tree2 =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/plugins/etk_list_viewer.c,v retrieving revision 1.76 retrieving revision 1.77 diff -u -3 -r1.76 -r1.77 --- etk_list_viewer.c 30 Dec 2006 13:43:34 -0000 1.76 +++ etk_list_viewer.c 3 Jan 2007 02:04:28 -0000 1.77 @@ -19,7 +19,7 @@ entropy_core *ecore; /*A reference to the core object passed from init */ //Etk_Row *current_row; Etk_Widget *tree; - Etk_Tree_Col* tree_col1; + Etk_Tree2_Col* tree_col1; Etk_Widget* parent_visual; Ecore_Hash* gui_hash; @@ -46,7 +46,7 @@ entropy_generic_file *file; entropy_thumbnail *thumbnail; entropy_gui_component_instance *instance; - Etk_Tree_Row *icon; + Etk_Tree2_Row *icon; }; @@ -96,7 +96,7 @@ /* Compares two rows of the tree */ -static int _entropy_etk_list_type_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +static int _entropy_etk_list_type_compare_cb(Etk_Tree2 *tree, Etk_Tree2_Row *row1, Etk_Tree2_Row *row2, Etk_Tree2_Col *col, void *data) { gui_file *file1, *file2; int val; @@ -116,7 +116,7 @@ } } -static int _entropy_etk_list_filename_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +static int _entropy_etk_list_filename_compare_cb(Etk_Tree2 *tree, Etk_Tree2_Row *row1, Etk_Tree2_Row *row2, Etk_Tree2_Col *col, void *data) { gui_file *file1, *file2; int val; @@ -149,7 +149,7 @@ } /* Compares two rows of the tree */ -static int _entropy_etk_list_size_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +static int _entropy_etk_list_size_compare_cb(Etk_Tree2 *tree, Etk_Tree2_Row *row1, Etk_Tree2_Row *row2, Etk_Tree2_Col *col, void *data) { gui_file *file1, *file2; @@ -172,7 +172,7 @@ } /* Compares two rows of the tree */ -static int _entropy_etk_list_date_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +static int _entropy_etk_list_date_compare_cb(Etk_Tree2 *tree, Etk_Tree2_Row *row1, Etk_Tree2_Row *row2, Etk_Tree2_Col *col, void *data) { gui_file *file1, *file2; @@ -198,16 +198,15 @@ static void _etk_entropy_list_viewer_key_down_cb(Etk_Object *object, void *event, void *data) { Etk_Event_Key_Down *key_event = event; + Etk_Tree2_Row* iter; - Etk_Tree* tree; - Evas_List* row_list; + Etk_Tree2* tree; + Evas_List* row_list = NULL; gui_file* file; - - /*entropy_gui_component_instance* instance; - entropy_etk_file_list_viewer* viewer;*/ - tree = ETK_TREE(object); - row_list = etk_tree_selected_rows_get(tree); + tree = ETK_TREE2(object); + for (iter = etk_tree2_first_row_get(tree); iter; iter = etk_tree2_row_walk_next(iter, ETK_TRUE)) + if (iter->selected == ETK_TRUE) row_list = evas_list_append(row_list, iter); if (!strcmp(key_event->key, "Delete")) { @@ -232,7 +231,7 @@ static void _entropy_etk_list_viewer_drag_begin_cb(Etk_Object *object, void *data) { - Etk_Tree *tree; + Etk_Tree2 *tree; const char **types; unsigned int num_types; Etk_Widget *drag; @@ -241,7 +240,7 @@ entropy_etk_file_list_viewer* viewer; char buffer[8192]; /* Um - help - what do we size this to? */ int count = 0; - Evas_List* rows; + Evas_List* rows = NULL; Etk_Widget* table; int l=0,r=0,t=0,b=0; int added_object = 0; @@ -249,12 +248,14 @@ Etk_Widget* vbox; Etk_Widget* label; char label_buffer[50]; + Etk_Tree2_Row* iter; instance = data; viewer = instance->data; - tree = ETK_TREE(object); - rows = etk_tree_selected_rows_get(tree); + tree = ETK_TREE2(object); + for (iter = etk_tree2_first_row_get(tree); iter; iter = etk_tree2_row_walk_next(iter, ETK_TRUE)) + if (iter->selected == ETK_TRUE) rows = evas_list_append(rows, iter); drag = (ETK_WIDGET(tree))->drag; @@ -356,7 +357,7 @@ Ecore_List *file_remove_ref_list; entropy_generic_file *obj; gui_file *freeobj; - Etk_Tree_Row* row; + Etk_Tree2_Row* row; entropy_etk_file_list_viewer *view = comp->data; @@ -400,7 +401,7 @@ } -static void _etk_list_viewer_row_clicked(Etk_Object *object, Etk_Tree_Row *row, Etk_Event_Mouse_Up *event, void *data) +static void _etk_list_viewer_row_clicked(Etk_Object *object, Etk_Tree2_Row *row, Etk_Event_Mouse_Up *event, void *data) { entropy_gui_component_instance* instance; entropy_etk_file_list_viewer* viewer; @@ -428,7 +429,7 @@ gui_event->data = file->file; entropy_core_layout_notify_event (file->instance, gui_event, ENTROPY_EVENT_GLOBAL); } else if (event->button == 2) { - etk_tree_row_select(row); + etk_tree2_row_select(row); printf("MetaData request\n"); gui_event = entropy_malloc (sizeof (entropy_gui_event)); @@ -437,11 +438,14 @@ gui_event->data = file->file; entropy_core_layout_notify_event (file->instance, gui_event, ENTROPY_EVENT_GLOBAL); } else if (event->button == 3) { - Evas_List* rows; + Evas_List* rows = NULL; + Etk_Tree2_Row* iter; - rows = etk_tree_selected_rows_get(ETK_TREE(viewer->tree)); + for (iter = etk_tree2_first_row_get(ETK_TREE2(viewer->tree)); iter; iter = etk_tree2_row_walk_next(iter, ETK_TRUE)) + if (iter->selected == ETK_TRUE) rows = evas_list_append(rows, iter); + if (evas_list_count(rows) <= 1) { - etk_tree_row_select(row); + etk_tree2_row_select(row); file = ecore_hash_get(etk_list_viewer_row_hash, row); entropy_etk_context_menu_popup(instance, file->file); } else { @@ -476,7 +480,7 @@ event_file = ecore_hash_get(viewer->gui_hash,file); - etk_tree_row_del(event_file->icon); + etk_tree2_row_delete(event_file->icon); /*Destroy the gui_file object..*/ gui_file_remove_destroy_single(instance,event_file); @@ -485,16 +489,18 @@ Ecore_List* entropy_etk_list_viewer_selected_get(entropy_etk_file_list_viewer* viewer) { - Evas_List* rows; + Evas_List* rows = NULL; + Etk_Tree2_Row* iter; Ecore_List* ret_files; gui_file* file; ret_files = ecore_list_new(); + + for (iter = etk_tree2_first_row_get(ETK_TREE2(viewer->tree)); iter; iter = etk_tree2_row_walk_next(iter, ETK_TRUE)) + if (iter->selected == ETK_TRUE) rows = evas_list_append(rows, iter); - rows = etk_tree_selected_rows_get(ETK_TREE(viewer->tree)); for (; rows; rows = rows->next ) { file = ((gui_file*)ecore_hash_get(etk_list_viewer_row_hash, rows->data)); - ecore_list_append(ret_files, file->file); } @@ -507,15 +513,15 @@ list_viewer_add_row (entropy_gui_component_instance * instance, entropy_generic_file * file) { - Etk_Tree_Row* new_row; + Etk_Tree2_Row* new_row; entropy_etk_file_list_viewer* viewer; gui_file *e_file = NULL; entropy_gui_event *gui_event; - Etk_Tree_Col* col1; - Etk_Tree_Col* col2; - Etk_Tree_Col* col3; - Etk_Tree_Col* col4; - Etk_Tree_Col* col5; + Etk_Tree2_Col* col1; + Etk_Tree2_Col* col2; + Etk_Tree2_Col* col3; + Etk_Tree2_Col* col4; + Etk_Tree2_Col* col5; char buffer[50]; char date_buffer[26]; char* thumbnail_filename; @@ -538,17 +544,17 @@ thumbnail_filename = file->thumbnail->thumbnail_filename; } - col1 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 0); - col2 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 1); - col3 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 2); - col4 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 3); - col5 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 4); + col1 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 0); + col2 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 1); + col3 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 2); + col4 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 3); + col5 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 4); - etk_tree_freeze(ETK_TREE(viewer->tree)); + etk_tree2_freeze(ETK_TREE2(viewer->tree)); if (!file->retrieved_stat) { - new_row = etk_tree_append(ETK_TREE(viewer->tree), + new_row = etk_tree2_row_append(ETK_TREE2(viewer->tree), NULL, col1, thumbnail_filename, col2, file->filename, col4, file->mime_type, @@ -561,7 +567,7 @@ ctime_r(&file->properties.st_mtime, date_buffer); date_buffer[strlen(date_buffer)-1] = '\0'; - new_row = etk_tree_append(ETK_TREE(viewer->tree), + new_row = etk_tree2_row_append(ETK_TREE2(viewer->tree), NULL, col1, thumbnail_filename, col2, file->filename, col3, buffer, @@ -593,7 +599,7 @@ ENTROPY_EVENT_LOCAL); } - etk_tree_thaw(ETK_TREE(viewer->tree)); + etk_tree2_thaw(ETK_TREE2(viewer->tree)); } @@ -620,7 +626,7 @@ remove_ref = gui_object_destroy_and_free(comp, viewer->gui_hash); printf("Clearing tree..\n"); - etk_tree_clear(ETK_TREE(viewer->tree)); + etk_tree2_clear(ETK_TREE2(viewer->tree)); ecore_list_goto_first (el); while ((file = ecore_list_next (el))) { @@ -651,31 +657,31 @@ char buffer[50]; char date_buffer[26]; - Etk_Tree_Col* col1; - Etk_Tree_Col* col2; - Etk_Tree_Col* col3; - Etk_Tree_Col* col4; - Etk_Tree_Col* col5; + Etk_Tree2_Col* col1; + Etk_Tree2_Col* col2; + Etk_Tree2_Col* col3; + Etk_Tree2_Col* col4; + Etk_Tree2_Col* col5; /*If !obj, it has been deleted - fail silently*/ if (obj) { - col1 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 0); - col2 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 1); - col3 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 2); - col4 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 3); - col5 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 4); + col1 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 0); + col2 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 1); + col3 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 2); + col4 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 3); + col5 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 4); snprintf(buffer,50, "%lld Kb", file_stat->stat_obj->st_size / 1024); ctime_r(&file_stat->stat_obj->st_mtime, date_buffer); date_buffer[strlen(date_buffer)-1] = '\0'; - etk_tree_freeze(ETK_TREE(viewer->tree)); - etk_tree_row_fields_set((Etk_Tree_Row*)obj->icon, + etk_tree2_freeze(ETK_TREE2(viewer->tree)); + etk_tree2_row_fields_set((Etk_Tree2_Row*)obj->icon, col3, buffer, col5, date_buffer, NULL); - etk_tree_thaw(ETK_TREE(viewer->tree)); + etk_tree2_thaw(ETK_TREE2(viewer->tree)); } } break; @@ -723,17 +729,17 @@ obj = ecore_hash_get (view->gui_hash, thumb->parent); if (obj) { - Etk_Tree_Col* col1; + Etk_Tree2_Col* col1; obj->thumbnail = thumb; - col1 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 0); - etk_tree_freeze(ETK_TREE(viewer->tree)); + col1 = etk_tree2_nth_col_get(ETK_TREE2(viewer->tree), 0); + etk_tree2_freeze(ETK_TREE2(viewer->tree)); - etk_tree_row_fields_set((Etk_Tree_Row*)obj->icon, + etk_tree2_row_fields_set((Etk_Tree2_Row*)obj->icon, col1, obj->thumbnail->thumbnail_filename, NULL); - etk_tree_thaw(ETK_TREE(viewer->tree)); + etk_tree2_thaw(ETK_TREE2(viewer->tree)); } else { /*printf ("ERR: Couldn't find a hash reference for this file!\n");*/ @@ -815,36 +821,36 @@ viewer->files = ecore_list_new(); viewer->gui_hash = ecore_hash_new(ecore_direct_hash, ecore_direct_compare); - viewer->tree = etk_tree_new(); - etk_tree_mode_set(ETK_TREE(viewer->tree), ETK_TREE_MODE_LIST); + viewer->tree = etk_tree2_new(); + etk_tree2_mode_set(ETK_TREE2(viewer->tree), ETK_TREE2_MODE_LIST); - viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Icon"), - etk_tree_model_image_new(ETK_TREE(viewer->tree), ETK_TREE_FROM_FILE), 48); - viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Filename"), - etk_tree_model_text_new(ETK_TREE(viewer->tree)), 150); - etk_tree_col_sort_func_set(viewer->tree_col1, _entropy_etk_list_filename_compare_cb, NULL); - - viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Size"), - etk_tree_model_text_new(ETK_TREE(viewer->tree)),60); - etk_tree_col_sort_func_set(viewer->tree_col1, _entropy_etk_list_size_compare_cb, NULL); - - viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Type"), - etk_tree_model_text_new(ETK_TREE(viewer->tree)),65); - etk_tree_col_sort_func_set(viewer->tree_col1, _entropy_etk_list_type_compare_cb, NULL); - - viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Date Modified"), - etk_tree_model_text_new(ETK_TREE(viewer->tree)),90); - etk_tree_col_sort_func_set(viewer->tree_col1, _entropy_etk_list_date_compare_cb, NULL); + viewer->tree_col1 = etk_tree2_col_new(ETK_TREE2(viewer->tree), _("Icon"), + etk_tree2_model_image_new(ETK_TREE2(viewer->tree), ETK_TREE2_FROM_FILE), 48); + viewer->tree_col1 = etk_tree2_col_new(ETK_TREE2(viewer->tree), _("Filename"), + etk_tree2_model_text_new(ETK_TREE2(viewer->tree)), 150); + etk_tree2_col_sort_set(viewer->tree_col1, _entropy_etk_list_filename_compare_cb, NULL); + + viewer->tree_col1 = etk_tree2_col_new(ETK_TREE2(viewer->tree), _("Size"), + etk_tree2_model_text_new(ETK_TREE2(viewer->tree)),60); + etk_tree2_col_sort_set(viewer->tree_col1, _entropy_etk_list_size_compare_cb, NULL); + + viewer->tree_col1 = etk_tree2_col_new(ETK_TREE2(viewer->tree), _("Type"), + etk_tree2_model_text_new(ETK_TREE2(viewer->tree)),65); + etk_tree2_col_sort_set(viewer->tree_col1, _entropy_etk_list_type_compare_cb, NULL); + + viewer->tree_col1 = etk_tree2_col_new(ETK_TREE2(viewer->tree), _("Date Modified"), + etk_tree2_model_text_new(ETK_TREE2(viewer->tree)),90); + etk_tree2_col_sort_set(viewer->tree_col1, _entropy_etk_list_date_compare_cb, NULL); - /*DND Setup*/ - dnd_types_num = 1; + /*DND Setup*/ /*FIXME - DND disabled*/ + /* dnd_types_num = 1; dnd_types = entropy_malloc(dnd_types_num* sizeof(char*)); dnd_types[0] = strdup("text/uri-list"); etk_widget_dnd_source_set(viewer->tree, ETK_TRUE); - etk_signal_connect("drag_begin", ETK_OBJECT(viewer->tree) , ETK_CALLBACK(_entropy_etk_list_viewer_drag_begin_cb), instance); - etk_tree_multiple_select_set(ETK_TREE(viewer->tree), ETK_TRUE); - etk_tree_build(ETK_TREE(viewer->tree)); + etk_signal_connect("drag_begin", ETK_OBJECT(viewer->tree) , ETK_CALLBACK(_entropy_etk_list_viewer_drag_begin_cb), instance);*/ + etk_tree2_multiple_select_set(ETK_TREE2(viewer->tree), ETK_TRUE); + etk_tree2_build(ETK_TREE2(viewer->tree)); //etk_widget_size_request_set(viewer->tree, 600, 600); ------------------------------------------------------------------------- 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