summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-11-25 00:50:28 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-11-25 00:50:28 +0000
commitf6b5444ebf2e85d28da5293c582babc343ff4d31 (patch)
tree1eeb243e0d1f428babc5c4e0ff086d1ce4e1faf0
parent4baf3e33b7c36307a36a3491d59dc558f74acbd4 (diff)
the OTHER PART of fix up region-list => canvas drags, given changes in DnDTreeView
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4247 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/dndtreeview.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h b/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h
index 08d54bb139..d045a9508f 100644
--- a/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h
+++ b/libs/gtkmm2ext/gtkmm2ext/dndtreeview.h
@@ -130,21 +130,29 @@ class DnDTreeView : public DnDTreeViewBase
}
}
- private:
+ /**
+ * this can be called by the Treeview itself or by some other
+ * object that wants to get the list of dragged items.
+ */
- void end_object_drag () {
+ void get_object_drag_data (std::list<DataType>& l) {
Glib::RefPtr<Gtk::TreeModel> model = drag_data.source->get_model();
DataType v;
- std::list<DataType> l;
Gtk::TreeSelection::ListHandle_Path selection = drag_data.source->get_selection()->get_selected_rows ();
for (Gtk::TreeSelection::ListHandle_Path::iterator x = selection.begin(); x != selection.end(); ++x) {
model->get_iter (*x)->get_value (drag_data.data_column, v);
l.push_back (v);
}
+ }
+ private:
+ void end_object_drag () {
+ std::list<DataType> l;
+ get_object_drag_data (l);
signal_drop (l);
}
+
};
} // namespace