Merged with trunk R992.
[ardour.git] / libs / gtkmm2ext / dndtreeview.cc
1 #include <cstdio>
2 #include <iostream>
3
4 #include <gtkmm2ext/dndtreeview.h>
5
6 using namespace std;
7 using namespace sigc;
8 using namespace Gdk;
9 using namespace Gtk;
10 using namespace Glib;
11 using namespace Gtkmm2ext;
12
13 DnDTreeViewBase::DnDTreeViewBase ()
14         : TreeView ()
15 {
16         draggable.push_back (TargetEntry ("GTK_TREE_MODEL_ROW", TARGET_SAME_WIDGET));
17         data_column = -1;
18
19         enable_model_drag_source (draggable);
20         enable_model_drag_dest (draggable);
21
22         suggested_action = Gdk::DragAction (0);
23 }
24
25 void
26 DnDTreeViewBase::add_drop_targets (list<TargetEntry>& targets)
27 {
28         for (list<TargetEntry>::iterator i = targets.begin(); i != targets.end(); ++i) {
29                 draggable.push_back (*i);
30         }
31         enable_model_drag_source (draggable);
32         enable_model_drag_dest (draggable);
33 }       
34
35 void
36 DnDTreeViewBase::add_object_drag (int column, string type_name)
37 {
38         draggable.push_back (TargetEntry (type_name, TargetFlags(0)));
39         data_column = column;
40
41         enable_model_drag_source (draggable);
42         enable_model_drag_dest (draggable);
43 }
44
45 bool 
46 DnDTreeViewBase::on_drag_drop(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, guint time)
47 {
48         suggested_action = Gdk::DragAction (0);
49         return TreeView::on_drag_drop (context, x, y, time);
50 }
51
52