| Top |
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.
GdkAtom
gdk_drag_get_selection (GdkDragContext *context);
Returns the selection atom for the current source window.
void gdk_drag_abort (GdkDragContext *context,guint32 time_);
Aborts a drag without dropping.
This function is called by the drag source.
void gdk_drop_reply (GdkDragContext *context,gboolean accepted,guint32 time_);
Accepts or rejects a drop.
This function is called by the drag destination in response to a drop initiated by the drag source.
void gdk_drag_drop (GdkDragContext *context,guint32 time_);
Drops on the current destination.
This function is called by the drag source.
void gdk_drag_find_window_for_screen (GdkDragContext *context,GdkWindow *drag_window,GdkScreen *screen,gint x_root,gint y_root,GdkWindow **dest_window,GdkDragProtocol *protocol);
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 |
||
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 |
|
screen |
the screen where the destination window is sought |
|
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. |
[out] |
protocol |
location to store the DND protocol in. |
[out] |
Since: 2.2
GdkDragContext * gdk_drag_begin (GdkWindow *window,GList *targets);
Starts a drag and creates a new drag context for it.
This function assumes that the drag is controlled by the
client pointer device, use gdk_drag_begin_for_device() to
begin a drag with a different device.
This function is called by the drag source.
window |
the source window for this drag. |
|
targets |
the offered targets, as list of GdkAtoms. |
[transfer none][element-type GdkAtom] |
GdkDragContext * gdk_drag_begin_for_device (GdkWindow *window,GdkDevice *device,GList *targets);
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 |
|
device |
the device that controls this drag |
|
targets |
the offered targets, as list of GdkAtoms. |
[transfer none][element-type GdkAtom] |
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_);
Updates the drag context when the pointer moves or the set of actions changes.
This function is called by the drag source.
context |
||
dest_window |
the new destination window, obtained by
|
|
protocol |
the DND protocol in use, obtained by |
|
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 |
void gdk_drop_finish (GdkDragContext *context,gboolean success,guint32 time_);
Ends the drag operation after a drop.
This function is called by the drag destination.
context |
||
success |
|
|
time_ |
the timestamp for this operation |
void gdk_drag_status (GdkDragContext *context,GdkDragAction action,guint32 time_);
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.
gboolean
gdk_drag_drop_succeeded (GdkDragContext *context);
Returns whether the dropped data has been successfully
transferred. This function is intended to be used while
handling a GDK_DROP_FINISHED event, its return value is
meaningless at other times.
Since: 2.6
GdkDragProtocol gdk_window_get_drag_protocol (GdkWindow *window,GdkWindow **target);
Finds out the DND protocol supported by a window.
window |
the destination window |
|
target |
location of the window
where the drop should happen. This may be |
[out][allow-none][transfer full] |
Since: 3.0
GdkDragAction
gdk_drag_context_get_actions (GdkDragContext *context);
Determines the bitmask of actions proposed by the source if
gdk_drag_context_get_suggested_action() returns GDK_ACTION_ASK.
Since: 2.22
GdkDragAction
gdk_drag_context_get_suggested_action (GdkDragContext *context);
Determines the suggested drag action of the context.
Since: 2.22
GdkDragAction
gdk_drag_context_get_selected_action (GdkDragContext *context);
Determines the action chosen by the drag destination.
Since: 2.22
GList *
gdk_drag_context_list_targets (GdkDragContext *context);
Retrieves the list of targets of the context.
Since: 2.22
GdkDevice *
gdk_drag_context_get_device (GdkDragContext *context);
Returns the GdkDevice associated to the drag context.
void gdk_drag_context_set_device (GdkDragContext *context,GdkDevice *device);
Associates a GdkDevice to context
, so all Drag and Drop events
for context
are emitted as if they came from this device.
GdkWindow *
gdk_drag_context_get_source_window (GdkDragContext *context);
Returns the GdkWindow where the DND operation started.
Since: 2.22
GdkWindow *
gdk_drag_context_get_dest_window (GdkDragContext *context);
Returns the destination windw for the DND operation.
Since: 3.0
GdkDragProtocol
gdk_drag_context_get_protocol (GdkDragContext *context);
Returns the drag protocol thats used by this context.
Since: 3.0
Used in GdkDragContext to indicate the protocol according to which DND is done.
Used in GdkDragContext to indicate what the destination should do with the dropped data.
|
Means nothing, and should not be used. |
||
|
Copy the data. |
||
|
Move the data, i.e. first copy it, then delete it from the source using the DELETE target of the X selection protocol. |
||
|
Add a link to the data. Note that this is only useful if source and destination agree on what it means. |
||
|
Special action which tells the source that the destination will do something that the source doesn’t understand. |
||
|
Ask the user what to do with the data. |