Μεταφορά κι απόθεση

Η Gtk::TreeView υλοποιεί ήδη απλή μεταφορά και απόθεση όταν χρησιμοποιείται με τα μοντέλα Gtk::ListStore ή Gtk::TreeStore. Αν είναι απαραίτητο, επιτρέπει επίσης την υλοποίηση πιο σύνθετης συμπεριφοράς όταν μεταφέρονται και αποτίθενται στοιχεία, χρησιμοποιώντας την κανονική API Μεταφορά και απόθεση.

10.6.1. Αναδιατάξιμες γραμμές

Αν καλέσετε τη Gtk::TreeView::set_reorderable(), τότε τα στοιχεία της προβολής δένδρου μπορούν να μετακινηθούν μέσα στην ίδια προβολή δένδρου. Αυτό δείχνεται στο παράδειγμα TreeStore.

However, this does not allow you any control of which items can be dragged, and where they can be dropped. If you need that extra control then you might create a derived Gtk::TreeModel from Gtk::TreeStore or Gtk::ListStore and override the Gtk::TreeDragSource::row_draggable_vfunc() and Gtk::TreeDragDest::row_drop_possible_vfunc() virtual methods. You can examine the Gtk::TreeModel::Paths provided and allow or disallow dragging or dropping by returning true or false.

Αυτό παρουσιάζεται στο παράδειγμα drag_and_drop.