gtk-GtkTreeView-drag-and-drop: GtkTreeView drag-and-drop

Description Methods and Functions Hierarchy Implementations Detailed Description Structures Author(s) References

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

1
2
3
4
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


RGtk2 documentation built on Oct. 14, 2021, 5:08 p.m.