Mercurial > geeqie.yaz
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", |