comparison src/view_dir.c @ 407:3a9074e73f53

Rename vd_drop_update() to vd_dnd_drop_update(). Add two function pointers to ViewDir struct to keep vdtree_dnd_drop_expand_cancel() and vdtree_dnd_drop_expand() static to view_dir_tree.c.
author zas_
date Fri, 18 Apr 2008 16:53:41 +0000
parents 7840ccc95aee
children 440979320308
comparison
equal deleted inserted replaced
406:8e6f5bbe7843 407:3a9074e73f53
67 vd->drop_list = NULL; 67 vd->drop_list = NULL;
68 vd->drop_scroll_id = -1; 68 vd->drop_scroll_id = -1;
69 vd->drop_list = NULL; 69 vd->drop_list = NULL;
70 70
71 vd->popup = NULL; 71 vd->popup = NULL;
72
73 vd->dnd_drop_leave_func = NULL;
74 vd->dnd_drop_update_func = NULL;
72 75
73 vd->widget = gtk_scrolled_window_new(NULL, NULL); 76 vd->widget = gtk_scrolled_window_new(NULL, NULL);
74 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(vd->widget), GTK_SHADOW_IN); 77 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(vd->widget), GTK_SHADOW_IN);
75 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vd->widget), 78 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vd->widget),
76 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 79 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
725 vd->drop_fd = fd; 728 vd->drop_fd = fd;
726 vd->drop_list = list; 729 vd->drop_list = list;
727 } 730 }
728 } 731 }
729 732
730 static void vd_drop_update(ViewDir *vd, gint x, gint y) 733 static void vd_dnd_drop_update(ViewDir *vd, gint x, gint y)
731 { 734 {
732 GtkTreePath *tpath; 735 GtkTreePath *tpath;
733 FileData *fd = NULL; 736 FileData *fd = NULL;
734 737
735 if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(vd->view), x, y, 738 if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(vd->view), x, y,
741 744
742 if (fd != vd->drop_fd) 745 if (fd != vd->drop_fd)
743 { 746 {
744 vd_color_set(vd, vd->drop_fd, FALSE); 747 vd_color_set(vd, vd->drop_fd, FALSE);
745 vd_color_set(vd, fd, TRUE); 748 vd_color_set(vd, fd, TRUE);
746 if (vd->type == DIRVIEW_TREE && fd) vdtree_dnd_drop_expand(vd); 749 if (fd && vd->dnd_drop_update_func) vd->dnd_drop_update_func(vd);
747 } 750 }
748 751
749 vd->drop_fd = fd; 752 vd->drop_fd = fd;
750 } 753 }
751 754
768 window = vd->view->window; 771 window = vd->view->window;
769 gdk_window_get_pointer(window, &x, &y, NULL); 772 gdk_window_get_pointer(window, &x, &y, NULL);
770 gdk_drawable_get_size(window, &w, &h); 773 gdk_drawable_get_size(window, &w, &h);
771 if (x >= 0 && x < w && y >= 0 && y < h) 774 if (x >= 0 && x < w && y >= 0 && y < h)
772 { 775 {
773 vd_drop_update(vd, x, y); 776 vd_dnd_drop_update(vd, x, y);
774 } 777 }
775 } 778 }
776 779
777 vd->drop_scroll_id = -1; 780 vd->drop_scroll_id = -1;
778 return FALSE; 781 return FALSE;
805 else 808 else
806 { 809 {
807 gdk_drag_status(context, context->suggested_action, time); 810 gdk_drag_status(context, context->suggested_action, time);
808 } 811 }
809 812
810 vd_drop_update(vd, x, y); 813 vd_dnd_drop_update(vd, x, y);
811 814
812 if (vd->drop_fd) 815 if (vd->drop_fd)
813 { 816 {
814 GtkAdjustment *adj = gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(vd->view)); 817 GtkAdjustment *adj = gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(vd->view));
815 widget_auto_scroll_start(vd->view, adj, -1, -1, vd_auto_scroll_notify_cb, vd); 818 widget_auto_scroll_start(vd->view, adj, -1, -1, vd_auto_scroll_notify_cb, vd);
824 827
825 if (vd->drop_fd != vd->click_fd) vd_color_set(vd, vd->drop_fd, FALSE); 828 if (vd->drop_fd != vd->click_fd) vd_color_set(vd, vd->drop_fd, FALSE);
826 829
827 vd->drop_fd = NULL; 830 vd->drop_fd = NULL;
828 831
829 if (vd->type == DIRVIEW_TREE) vdtree_dnd_drop_expand_cancel(vd); 832 if (vd->dnd_drop_leave_func) vd->dnd_drop_leave_func(vd);
830 } 833 }
831 834
832 void vd_dnd_init(ViewDir *vd) 835 void vd_dnd_init(ViewDir *vd)
833 { 836 {
834 gtk_drag_source_set(vd->view, GDK_BUTTON1_MASK | GDK_BUTTON2_MASK, 837 gtk_drag_source_set(vd->view, GDK_BUTTON1_MASK | GDK_BUTTON2_MASK,