gtk-GtkTreeView-drag-and-drop {RGtk2} | R Documentation

## GtkTreeView drag-and-drop

### Description

Interfaces for drag-and-drop support in GtkTreeView

### Methods and Functions

`gtkTreeDragSourceDragDataDelete(object, path)`
`gtkTreeDragSourceDragDataGet(object, path)`
`gtkTreeDragSourceRowDraggable(object, path)`
`gtkTreeDragDestDragDataReceived(object, dest, selection.data)`
`gtkTreeDragDestRowDropPossible(object, dest.path, selection.data)`
`gtkTreeSetRowDragData(object, tree.model, path)`
`gtkTreeGetRowDragData(object)`

### Hierarchy

    GInterface
       +----GtkTreeDragSource
    GInterface
       +----GtkTreeDragDest

### Implementations

GtkTreeDragSource is implemented by `GtkListStore`, `GtkTreeModelFilter`, `GtkTreeModelSort` and `GtkTreeStore`. GtkTreeDragDest is implemented by `GtkListStore` and `GtkTreeStore`.

### Detailed Description

GTK+ supports Drag-and-Drop in tree views with a high-level and a low-level API.

The low-level API consists of the GTK+ DND API, augmented by some treeview utility functions: `gtkTreeViewSetDragDestRow`, `gtkTreeViewGetDragDestRow`, `gtkTreeViewGetDestRowAtPos`, `gtkTreeViewCreateRowDragIcon`, `gtkTreeSetRowDragData` and `gtkTreeGetRowDragData`. This API leaves a lot of flexibility, but nothing is done automatically, and implementing advanced features like hover-to-open-rows or autoscrolling on top of this API is a lot of work.

On the other hand, if you write to the high-level API, then all the bookkeeping of rows is done for you, as well as things like hover-to-open and auto-scroll, but your models have to implement the `GtkTreeDragSource` and `GtkTreeDragDest` interfaces.

### Structures

`GtkTreeDragSource`

  undocumented

`GtkTreeDragDest`

  undocumented

### Author(s)

Derived by RGtkGen from GTK+ documentation

### References

https://developer.gnome.org/gtk2/stable/gtk2-GtkTreeView-drag-and-drop.html

[Package RGtk2 version 2.20.36.3 Index]