manpagez: man pages & more
html files: gdk
Home | html | info | man

Drag And Drop

Drag And Drop — Functions for controlling drag and drop handling

Types and Values

Object Hierarchy

    GObject
    ╰── GdkDragContext

Includes

#include <gdk/gdk.h>

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.

Parameters

context

a GdkDragContext.

 

Returns

the selection atom, or GDK_NONE.

[transfer none]


gdk_drag_abort ()

void
gdk_drag_abort (GdkDragContext *context,
                guint32 time_);

Aborts a drag without dropping.

This function is called by the drag source.

Parameters

context

a GdkDragContext

 

time_

the timestamp for this operation

 

gdk_drop_reply ()

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.

Parameters

context

a GdkDragContext

 

accepted

TRUE if the drop is accepted

 

time_

the timestamp for this operation

 

gdk_drag_drop ()

void
gdk_drag_drop (GdkDragContext *context,
               guint32 time_);

Drops on the current destination.

This function is called by the drag source.

Parameters

context

a GdkDragContext

 

time_

the timestamp for this operation

 

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

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

 

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_begin ()

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.

Parameters

window

the source window for this drag.

 

targets

the offered targets, as list of GdkAtoms.

[transfer none][element-type GdkAtom]

Returns

a newly created GdkDragContext.

[transfer full]


gdk_drag_begin_for_device ()

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.

Parameters

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]

Returns

a newly created GdkDragContext.

[transfer full]


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_);

Updates the drag context when the pointer moves or the set of actions changes.

This function is called by the drag source.

Parameters

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


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 GdkDragContext

 

success

TRUE if the data was successfully received

 

time_

the timestamp for this operation

 

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.

Parameters

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

 

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.

Parameters

context

a GdkDragContext

 

Returns

TRUE if the drop was successful.

Since 2.6


gdk_window_get_drag_protocol ()

GdkDragProtocol
gdk_window_get_drag_protocol (GdkWindow *window,
                              GdkWindow **target);

Finds out the DND protocol supported by a window.

Parameters

window

the destination window

 

target

location of the window where the drop should happen. This may be window or a proxy window, or NULL if window does not support Drag and Drop.

[out][allow-none][transfer full]

Returns

the supported DND protocol.

Since 3.0


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_get_suggested_action() returns GDK_ACTION_ASK.

Parameters

context

a GdkDragContext

 

Returns

the GdkDragAction flags

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.

Parameters

context

a GdkDragContext

 

Returns

a GdkDragAction value

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.

Parameters

context

a GdkDragContext

 

Returns

a GdkDragAction value

Since 2.22


gdk_drag_context_list_targets ()

GList *
gdk_drag_context_list_targets (GdkDragContext *context);

Retrieves the list of targets of the context.

Parameters

context

a GdkDragContext

 

Returns

a GList of targets.

[transfer none][element-type GdkAtom]

Since 2.22


gdk_drag_context_get_device ()

GdkDevice *
gdk_drag_context_get_device (GdkDragContext *context);

Returns the GdkDevice associated to the drag context.

Parameters

context

a GdkDragContext

 

Returns

The GdkDevice associated to context .

[transfer none]


gdk_drag_context_set_device ()

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.

Parameters

context

a GdkDragContext

 

device

a GdkDevice

 

gdk_drag_context_get_source_window ()

GdkWindow *
gdk_drag_context_get_source_window (GdkDragContext *context);

Returns the GdkWindow where the DND operation started.

Parameters

context

a GdkDragContext

 

Returns

a GdkWindow.

[transfer none]

Since 2.22


gdk_drag_context_get_dest_window ()

GdkWindow *
gdk_drag_context_get_dest_window (GdkDragContext *context);

Returns the destination windw for the DND operation.

Parameters

context

a GdkDragContext

 

Returns

a GdkWindow.

[transfer none]

Since 3.0


gdk_drag_context_get_protocol ()

GdkDragProtocol
gdk_drag_context_get_protocol (GdkDragContext *context);

Returns the drag protocol thats used by this context.

Parameters

context

a GdkDragContext

 

Returns

the drag protocol

Since 3.0

Types and Values

GdkDragContext

typedef struct _GdkDragContext GdkDragContext;

enum GdkDragProtocol

Used in GdkDragContext to indicate the protocol according to which DND is done.

Members

GDK_DRAG_PROTO_NONE

no protocol.

 

GDK_DRAG_PROTO_MOTIF

The Motif DND protocol. No longer supported

 

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_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.

 

enum GdkDragAction

Used in GdkDragContext to indicate what the destination should do with the dropped data.

Members

GDK_ACTION_DEFAULT

Means nothing, and should not be used.

 

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.

 
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.