ViewFile *vf_new(FileViewType type, FileData *dir_fd) { ViewFile *vf; vf = g_new0(ViewFile, 1); vf->type = type; vf->sort_method = SORT_NAME; vf->sort_ascend = TRUE; vf->scrolled = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(vf->scrolled), GTK_SHADOW_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vf->scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); vf->filter = vf_marks_filter_init(vf); vf->widget = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vf->widget), vf->filter, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vf->widget), vf->scrolled, TRUE, TRUE, 0); gtk_widget_show(vf->scrolled); g_signal_connect(G_OBJECT(vf->widget), "destroy", G_CALLBACK(vf_destroy_cb), vf); switch (type) { case FILEVIEW_LIST: vf = vflist_new(vf, dir_fd); break; case FILEVIEW_ICON: vf = vficon_new(vf, dir_fd); break; } vf_dnd_init(vf); g_signal_connect(G_OBJECT(vf->listview), "key_press_event", G_CALLBACK(vf_press_key_cb), vf); g_signal_connect(G_OBJECT(vf->listview), "button_press_event", G_CALLBACK(vf_press_cb), vf); g_signal_connect(G_OBJECT(vf->listview), "button_release_event", G_CALLBACK(vf_release_cb), vf); gtk_container_add(GTK_CONTAINER(vf->scrolled), vf->listview); gtk_widget_show(vf->listview); if (dir_fd) vf_set_fd(vf, dir_fd); return vf; }
static GtkWidget *layout_list_new(LayoutWindow *lw) { if (lw->icon_view) { lw->vfi = vficon_new(NULL); vficon_set_layout(lw->vfi, lw); vficon_set_status_func(lw->vfi, layout_icon_status_cb, lw); vficon_set_thumb_status_func(lw->vfi, layout_icon_thumb_cb, lw); return lw->vfi->widget; } lw->vfl = vflist_new(NULL, lw->thumbs_enabled); vflist_set_layout(lw->vfl, lw); vflist_set_status_func(lw->vfl, layout_list_status_cb, lw); vflist_set_thumb_status_func(lw->vfl, layout_list_thumb_cb, lw); return lw->vfl->widget; }