Top |
Functions
Description
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.
Functions
gdk_drag_get_selection ()
GdkAtom
gdk_drag_get_selection (GdkDragContext *context
);
Returns the selection atom for the current source window.
gdk_drag_abort ()
void gdk_drag_abort (GdkDragContext *context
,guint32 time_
);
Aborts a drag without dropping.
This function is called by the drag source.
gdk_drop_reply ()
void gdk_drop_reply (GdkDragContext *context
,gboolean ok
,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.
gdk_drag_context_new ()
GdkDragContext *
gdk_drag_context_new (void
);
gdk_drag_context_new
has been deprecated since version 2.24 and should not be used in newly-written code.
This function is not useful, you always
obtain drag contexts by gdk_drag_begin()
or similar.
Creates a new GdkDragContext.
gdk_drag_drop ()
void gdk_drag_drop (GdkDragContext *context
,guint32 time_
);
Drops on the current destination.
This function is called by the drag source.
gdk_drag_find_window ()
void gdk_drag_find_window (GdkDragContext *context
,GdkWindow *drag_window
,gint x_root
,gint y_root
,GdkWindow **dest_window
,GdkDragProtocol *protocol
);
gdk_drag_find_window
has been deprecated since version 2.24 and should not be used in newly-written code.
Use gdk_drag_find_window_for_screen()
instead.
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()
.
Parameters
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. |
|
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] |
gdk_drag_find_window_for_screen ()
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()
.
Parameters
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
gdk_drag_context_ref ()
void
gdk_drag_context_ref (GdkDragContext *context
);
gdk_drag_context_ref
has been deprecated since version 2.2 and should not be used in newly-written code.
Use g_object_ref()
instead.
Deprecated function; use g_object_ref()
instead.
gdk_drag_context_get_actions ()
GdkDragAction
gdk_drag_context_get_actions (GdkDragContext *context
);
Determines the bitmask of actions proposed by the source if
gdk_drag_context_suggested_action()
returns GDK_ACTION_ASK.
Since: 2.22
gdk_drag_context_get_selected_action ()
GdkDragAction
gdk_drag_context_get_selected_action (GdkDragContext *context
);
Determines the action chosen by the drag destination.
Since: 2.22
gdk_drag_context_get_suggested_action ()
GdkDragAction
gdk_drag_context_get_suggested_action (GdkDragContext *context
);
Determines the suggested drag action of the context.
Since: 2.22
gdk_drag_context_list_targets ()
GList *
gdk_drag_context_list_targets (GdkDragContext *context
);
Retrieves the list of targets of the context.
Since: 2.22
gdk_drag_context_get_source_window ()
GdkWindow *
gdk_drag_context_get_source_window (GdkDragContext *context
);
Returns the GdkWindow where the DND operation started.
Since: 2.22
gdk_drag_begin ()
GdkDragContext * gdk_drag_begin (GdkWindow *window
,GList *targets
);
Starts a drag and creates a new drag context for it.
This function is called by the drag source.
Parameters
window |
the source window for this drag. |
|
targets |
the offered targets, as list of GdkAtoms. |
[transfer none][element-type GdkAtom] |
gdk_drag_motion ()
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_
);
gdk_drag_motion
is deprecated and should not be used in newly-written code.
Updates the drag context when the pointer moves or the set of actions changes.
This function is called by the drag source.
Parameters
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. |
gdk_drop_finish ()
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.
Parameters
context |
a GtkDragContext. |
|
success |
|
|
time_ |
the timestamp for this operation. |
gdk_drag_get_protocol ()
GdkNativeWindow gdk_drag_get_protocol (GdkNativeWindow xid
,GdkDragProtocol *protocol
);
gdk_drag_get_protocol
has been deprecated since version 2.24 and should not be used in newly-written code.
Use gdk_drag_get_protocol_for_display()
instead
Finds out the DND protocol supported by a window.
gdk_drag_get_protocol_for_display ()
GdkNativeWindow gdk_drag_get_protocol_for_display (GdkDisplay *display
,GdkNativeWindow xid
,GdkDragProtocol *protocol
);
Finds out the DND protocol supported by a window.
Parameters
display |
the GdkDisplay where the destination window resides |
|
xid |
the windowing system id of the destination window. |
|
protocol |
location where the supported DND protocol is returned. |
Returns
the windowing system id of the window where the drop should happen. This
may be xid
or the id of a proxy window, or zero if xid
doesn't
support Drag and Drop.
Since: 2.2
gdk_drag_context_unref ()
void
gdk_drag_context_unref (GdkDragContext *context
);
gdk_drag_context_unref
has been deprecated since version 2.2 and should not be used in newly-written code.
Use g_object_unref()
instead.
Deprecated function; use g_object_unref()
instead.
gdk_drag_status ()
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.
gdk_drag_drop_succeeded ()
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
Types and Values
enum GdkDragProtocol
Used in GdkDragContext to indicate the protocol according to which DND is done.
struct GdkDragContext
struct GdkDragContext { GObject parent_instance; GdkDragProtocol GSEAL (protocol); gboolean GSEAL (is_source); GdkWindow *GSEAL (source_window); GdkWindow *GSEAL (dest_window); GList *GSEAL (targets); GdkDragAction GSEAL (actions); GdkDragAction GSEAL (suggested_action); GdkDragAction GSEAL (action); guint32 GSEAL (start_time); };
A GdkDragContext holds information about a drag in progress. It is used on both source and destination sides.
enum GdkDragAction
Used in GdkDragContext to indicate what the destination should do with the dropped data.
Members
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. |