Class DropTargetAsync

All Implemented Interfaces:
PointerInterface

public class DropTargetAsync extends EventController
`GtkDropTargetAsync` is an event controller to receive Drag-and-Drop
operations, asynchronously.

It is the more complete but also more complex method of handling drop
operations compared to [class@Gtk.DropTarget], and you should only use
it if `GtkDropTarget` doesn't provide all the features you need.

To use a `GtkDropTargetAsync` to receive drops on a widget, you create
a `GtkDropTargetAsync` object, configure which data formats and actions
you support, connect to its signals, and then attach it to the widget
with [method@Gtk.Widget.add_controller].

During a drag operation, the first signal that a `GtkDropTargetAsync`
emits is [signal@Gtk.DropTargetAsync::accept], which is meant to determine
whether the target is a possible drop site for the ongoing drop. The
default handler for the ::accept signal accepts the drop if it finds
a compatible data format and an action that is supported on both sides.

If it is, and the widget becomes a target, you will receive a
[signal@Gtk.DropTargetAsync::drag-enter] signal, followed by
[signal@Gtk.DropTargetAsync::drag-motion] signals as the pointer moves,
optionally a [signal@Gtk.DropTargetAsync::drop] signal when a drop happens,
and finally a [signal@Gtk.DropTargetAsync::drag-leave] signal when the
pointer moves off the widget.

The ::drag-enter and ::drag-motion handler return a `GdkDragAction`
to update the status of the ongoing operation. The ::drop handler
should decide if it ultimately accepts the drop and if it does, it
should initiate the data transfer and finish the operation by calling
[method@Gdk.Drop.finish].

Between the ::drag-enter and ::drag-leave signals the widget is a
current drop target, and will receive the %GTK_STATE_FLAG_DROP_ACTIVE
state, which can be used by themes to style the widget as a drop target.

https://docs.gtk.org/gtk4/class.DropTargetAsync.html