- if (vf->type == FILEVIEW_ICON)
- {
- if (!VFICON(vf)->selection) return;
- work = VFICON(vf)->selection;
- }
- else
- {
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(vf->listview));
- work = gtk_tree_selection_get_selected_rows(selection, &store);
- }
-
- for (; work; work = work->next)
- {
- if (vf->type == FILEVIEW_ICON)
- {
- fd_n = static_cast<FileData *>(work->data);
- }
- else
- {
- auto *tpath = static_cast<GtkTreePath *>(work->data);
- gtk_tree_model_get_iter(store, &iter, tpath);
- gtk_tree_model_get(store, &iter, VIEW_FILE_COLUMN_POINTER, &fd_n, -1);
- }
-
- func(fd_n);
- }
+ switch (vf->type)
+ {
+ case FILEVIEW_LIST: vflist_selection_foreach(vf, func); break;
+ case FILEVIEW_ICON: vficon_selection_foreach(vf, func); break;
+ }