Drag and Drop functions for controlling drag and drop handling. These functions provide a low level interface for drag and drop. The X backend of GDK supports both the Xdnd and Motif drag and drop protocols transparently, the Win32 backend supports the WM_DROPFILES protocol. GTK+ provides a higher level abstraction based on top of these functions, and so they are not normally needed in GTK+ applications. See the Drag and Drop section of the GTK+ documentation for more information. Returns the selection atom for the current source window. @context: a #GdkDragContext. @Returns: the selection atom. Aborts a drag without dropping. This function is called by the drag source. @context: a #GdkDragContext. @time: the timestamp for this operation. Accepts or rejects a drop. This function is called by the drag destination in response to a drop initiated by the drag source. @context: a #GdkDragContext. @ok: %TRUE if the drop is accepted. @time: the timestamp for this operation. Creates a new #GdkDragContext. @Returns: the newly created #GdkDragContext. Drops on the current destination. This function is called by the drag source. @context: a #GdkDragContext. @time: the timestamp for this operation. Finds the destination window and DND protocol to use at the given pointer position. This function is called by the drag source to obtain the @dest_window and @protocol parameters for gdk_drag_motion(). @context: a #GdkDragContext. @drag_window: a window which may be at the pointer position, but should be ignored, since it is put up by the drag source as an icon. @x_root: the x position of the pointer in root coordinates. @y_root: the y position of the pointer in root coordinates. @dest_window: location to store the destination window in. @protocol: location to store the DND protocol in. Deprecated function; use g_object_ref() instead. @context: a #GdkDragContext. Starts a drag and creates a new drag context for it. This function is called by the drag source. @window: the source window for this drag. @targets: the list of offered targets. @Returns: a newly created #GdkDragContext. Updates the drag context when the pointer moves or the set of actions changes. This function is called by the drag source. @context: a #GdkDragContext. @dest_window: the new destination window, obtained by gdk_drag_find_window(). @protocol: the DND protocol in use, obtained by gdk_drag_find_window(). @x_root: the x position of the pointer in root coordinates. @y_root: the y position of the pointer in root coordinates. @suggested_action: the suggested action. @possible_actions: the possible actions. @time: the timestamp for this operation. @Returns: FIXME Ends the drag operation after a drop. This function is called by the drag destination. @context: a #GtkDragContext. @success: %TRUE if the data was successfully received. @time: the timestamp for this operation. Finds out the DND protocol supported by a window. @xid: the X id of the destination window. @protocol: location where the supported DND protocol is returned. @Returns: the X id of the window where the drop should happen. This may be @xid or the X id of a proxy window, or None if @xid doesn't support Drag and Drop. @display: @xid: @protocol: @Returns: Used in #GdkDragContext to indicate the protocol according to which DND is done. @GDK_DRAG_PROTO_MOTIF: The Motif DND protocol. @GDK_DRAG_PROTO_XDND: The Xdnd protocol. @GDK_DRAG_PROTO_ROOTWIN: An extension to the Xdnd protocol for unclaimed root window drops. @GDK_DRAG_PROTO_NONE: no protocol. @GDK_DRAG_PROTO_WIN32_DROPFILES: The simple WM_DROPFILES protocol. @GDK_DRAG_PROTO_OLE2: The complex OLE2 DND protocol (not implemented). @GDK_DRAG_PROTO_LOCAL: Intra-application DND. Deprecated function; use g_object_unref() instead. @context: a #GdkDragContext. A GdkDragContext holds information about a drag in progress. It is used on both source and destination sides. @parent_instance: @protocol: the DND protocol which governs this drag. @is_source: %TRUE if the context is used on the source side. @source_window: the source of this drag. @dest_window: the destination window of this drag. @targets: a list of targets offered by the source. @actions: a bitmask of actions proposed by the source when @suggested_action is %GDK_ACTION_ASK. @suggested_action: the action suggested by the source. @action: the action chosen by the destination. @start_time: a timestamp recording the start time of this drag. Used in #GdkDragContext to indicate what the destination should do with the dropped data. @GDK_ACTION_DEFAULT: @GDK_ACTION_COPY: Copy the data. @GDK_ACTION_MOVE: Move the data, i.e. first copy it, then delete it from the source using the DELETE target of the X selection protocol. @GDK_ACTION_LINK: Add a link to the data. Note that this is only useful if source and destination agree on what it means. @GDK_ACTION_PRIVATE: Special action which tells the source that the destination will do something that the source doesn't understand. @GDK_ACTION_ASK: Ask the user what to do with the data. Selects one of the actions offered by the drag source. This function is called by the drag destination in response to gdk_drag_motion() called by the drag source. @context: a #GdkDragContext. @action: the selected action which will be taken when a drop happens, or 0 to indicate that a drop will not be accepted. @time: the timestamp for this operation.