Name
Drag and Drop -- functions for controlling drag and drop handling.
Synopsis
| 
#include <gdk/gdk.h>
GdkAtom     gdk_drag_get_selection          (GdkDragContext *context);
void        gdk_drag_abort                  (GdkDragContext *context,
                                             guint32 time);
void        gdk_drop_reply                  (GdkDragContext *context,
                                             gboolean ok,
                                             guint32 time);
GdkDragContext* gdk_drag_context_new        (void);
void        gdk_drag_drop                   (GdkDragContext *context,
                                             guint32 time);
void        gdk_drag_find_window            (GdkDragContext *context,
                                             GdkWindow *drag_window,
                                             gint x_root,
                                             gint y_root,
                                             GdkWindow **dest_window,
                                             GdkDragProtocol *protocol);
void        gdk_drag_context_ref            (GdkDragContext *context);
GdkDragContext* gdk_drag_begin              (GdkWindow *window,
                                             GList *targets);
gboolean    gdk_drag_motion                 (GdkDragContext *context,
                                             GdkWindow *dest_window,
                                             GdkDragProtocol protocol,
                                             gint x_root,
                                             gint y_root,
                                             GdkDragAction suggested_action,
                                             GdkDragAction possible_actions,
                                             guint32 time);
void        gdk_drop_finish                 (GdkDragContext *context,
                                             gboolean success,
                                             guint32 time);
guint32     gdk_drag_get_protocol           (guint32 xid,
                                             GdkDragProtocol *protocol);
enum        GdkDragProtocol;
void        gdk_drag_context_unref          (GdkDragContext *context);
struct      GdkDragContext;
enum        GdkDragAction;
void        gdk_drag_status                 (GdkDragContext *context,
                                             GdkDragAction action,
                                             guint32 time); | 
Description
These functions provide a low level interface for drag and drop.
GDK supports both the Xdnd and Motif drag and drop protocols transparently.
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.
Details
gdk_drag_get_selection ()
enum GdkDragProtocol
| typedef enum {
  GDK_DRAG_PROTO_MOTIF,
  GDK_DRAG_PROTO_XDND,
  GDK_DRAG_PROTO_ROOTWIN,	/* A root window with nobody claiming
				 * drags */
  GDK_DRAG_PROTO_NONE		/* Not a valid drag window */
} GdkDragProtocol; | 
gdk_drag_context_unref ()
struct GdkDragContext
| struct GdkDragContext {
  GdkDragProtocol protocol;
  
  gboolean is_source;
  
  GdkWindow *source_window;
  GdkWindow *dest_window;
  GList *targets;
  GdkDragAction actions;
  GdkDragAction suggested_action;
  GdkDragAction action; 
  guint32 start_time;
}; | 
enum GdkDragAction
| typedef enum {
  GDK_ACTION_DEFAULT = 1 << 0,
  GDK_ACTION_COPY    = 1 << 1,
  GDK_ACTION_MOVE    = 1 << 2,
  GDK_ACTION_LINK    = 1 << 3,
  GDK_ACTION_PRIVATE = 1 << 4,
  GDK_ACTION_ASK     = 1 << 5
} GdkDragAction; |