comparison src/view_dir_list.c @ 384:392dd6541d51

Merge parts of view_dir_list/tree constructors/destructors to view_dir.
author zas_
date Wed, 16 Apr 2008 16:54:38 +0000
parents 499d7ba62261
children 2c06e06f4236
comparison
equal deleted inserted replaced
383:499d7ba62261 384:392dd6541d51
972 static GtkWidget *done = NULL; 972 static GtkWidget *done = NULL;
973 973
974 if (done != widget) 974 if (done != widget)
975 { 975 {
976 GtkStyle *style; 976 GtkStyle *style;
977 977
978 style = gtk_widget_get_style(widget); 978 style = gtk_widget_get_style(widget);
979 memcpy(&color, &style->base[GTK_STATE_NORMAL], sizeof(color)); 979 memcpy(&color, &style->base[GTK_STATE_NORMAL], sizeof(color));
980 shift_color(&color, -1, 0); 980 shift_color(&color, -1, 0);
981 done = widget; 981 done = widget;
982 } 982 }
998 998
999 static void vdlist_destroy_cb(GtkWidget *widget, gpointer data) 999 static void vdlist_destroy_cb(GtkWidget *widget, gpointer data)
1000 { 1000 {
1001 ViewDir *vd = data; 1001 ViewDir *vd = data;
1002 1002
1003 if (vd->popup)
1004 {
1005 g_signal_handlers_disconnect_matched(G_OBJECT(vd->popup), G_SIGNAL_MATCH_DATA,
1006 0, 0, 0, NULL, vd);
1007 gtk_widget_destroy(vd->popup);
1008 }
1009
1010 vdlist_dnd_drop_scroll_cancel(vd); 1003 vdlist_dnd_drop_scroll_cancel(vd);
1011 widget_auto_scroll_stop(vd->view); 1004 widget_auto_scroll_stop(vd->view);
1012 1005
1013 filelist_free(vd->drop_list);
1014
1015 folder_icons_free(vd->pf);
1016
1017 g_free(vd->path);
1018 filelist_free(VDLIST_INFO(vd, list)); 1006 filelist_free(VDLIST_INFO(vd, list));
1019 g_free(vd->info); 1007 }
1020 g_free(vd); 1008
1021 } 1009 ViewDir *vdlist_new(ViewDir *vd, const gchar *path)
1022 1010 {
1023 ViewDir *vdlist_new(const gchar *path)
1024 {
1025 ViewDir *vd;
1026 GtkListStore *store; 1011 GtkListStore *store;
1027 GtkTreeSelection *selection; 1012 GtkTreeSelection *selection;
1028 GtkTreeViewColumn *column; 1013 GtkTreeViewColumn *column;
1029 GtkCellRenderer *renderer; 1014 GtkCellRenderer *renderer;
1030 1015
1031 vd = g_new0(ViewDir, 1);
1032 vd->info = g_new0(ViewDirInfoList, 1); 1016 vd->info = g_new0(ViewDirInfoList, 1);
1033 vd->type = DIRVIEW_LIST; 1017 vd->type = DIRVIEW_LIST;
1034 1018 vd->widget_destroy_cb = vdlist_destroy_cb;
1035 vd->path = NULL; 1019
1036 VDLIST_INFO(vd, list) = NULL; 1020 VDLIST_INFO(vd, list) = NULL;
1037 vd->click_fd = NULL;
1038
1039 vd->drop_fd = NULL;
1040 vd->drop_list = NULL;
1041
1042 vd->drop_scroll_id = -1;
1043
1044 vd->popup = NULL;
1045
1046 vd->widget = gtk_scrolled_window_new(NULL, NULL);
1047 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(vd->widget), GTK_SHADOW_IN);
1048 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vd->widget),
1049 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
1050 g_signal_connect(G_OBJECT(vd->widget), "destroy",
1051 G_CALLBACK(vdlist_destroy_cb), vd);
1052 1021
1053 store = gtk_list_store_new(4, G_TYPE_POINTER, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN); 1022 store = gtk_list_store_new(4, G_TYPE_POINTER, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN);
1054 vd->view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); 1023 vd->view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
1055 g_object_unref(store); 1024 g_object_unref(store);
1056 1025
1081 g_signal_connect(G_OBJECT(vd->view), "key_press_event", 1050 g_signal_connect(G_OBJECT(vd->view), "key_press_event",
1082 G_CALLBACK(vdlist_press_key_cb), vd); 1051 G_CALLBACK(vdlist_press_key_cb), vd);
1083 gtk_container_add(GTK_CONTAINER(vd->widget), vd->view); 1052 gtk_container_add(GTK_CONTAINER(vd->widget), vd->view);
1084 gtk_widget_show(vd->view); 1053 gtk_widget_show(vd->view);
1085 1054
1086 vd->pf = folder_icons_new();
1087
1088 vdlist_dnd_init(vd); 1055 vdlist_dnd_init(vd);
1089 1056
1090 g_signal_connect(G_OBJECT(vd->view), "button_press_event", 1057 g_signal_connect(G_OBJECT(vd->view), "button_press_event",
1091 G_CALLBACK(vdlist_press_cb), vd); 1058 G_CALLBACK(vdlist_press_cb), vd);
1092 g_signal_connect(G_OBJECT(vd->view), "button_release_event", 1059 g_signal_connect(G_OBJECT(vd->view), "button_release_event",