(define-interface TreeDragSource
  (in-module "Gtk")
  (c-name "GtkTreeDragSource")
  (gtype-id "GTK_TYPE_TREE_DRAG_SOURCE")
)

(define-method row_draggable
  (of-object "GtkTreeDragSource")
  (c-name "gtk_tree_drag_source_row_draggable")
  (return-type "gboolean")
  (parameters
    '("GtkTreePath*" "path")
  )
)

(define-method drag_data_delete
  (of-object "GtkTreeDragSource")
  (c-name "gtk_tree_drag_source_drag_data_delete")
  (return-type "gboolean")
  (parameters
    '("GtkTreePath*" "path")
  )
)

(define-method drag_data_get
  (of-object "GtkTreeDragSource")
  (c-name "gtk_tree_drag_source_drag_data_get")
  (return-type "gboolean")
  (parameters
    '("GtkTreePath*" "path")
    '("GtkSelectionData*" "selection_data")
  )
)

(define-virtual row_draggable
  (of-object "GtkTreeDragSource")
  (return-type "gboolean")
  (parameters
    '("GtkTreePath*" "path")
  )
)

(define-virtual drag_data_get
  (of-object "GtkTreeDragSource")
  (return-type "gboolean")
  (parameters
    '("GtkTreePath*" "path")
    '("GtkSelectionData*" "selection_data")
  )
)

(define-virtual drag_data_delete
  (of-object "GtkTreeDragSource")
  (return-type "gboolean")
  (parameters
    '("GtkTreePath*" "path")
  )
)

