Class: Gdk::Drop

Inherits:
Object
  • Object
show all
Defined in:
(unknown)

Overview

The GdkDrop object represents the target of an ongoing DND operation.

Possible drop sites get informed about the status of the ongoing drag operation with events of type %GDK_DRAG_ENTER, %GDK_DRAG_LEAVE, %GDK_DRAG_MOTION and %GDK_DROP_START. The GdkDrop object can be obtained from these [classGdk.Event] types using [methodGdk.DNDEvent.get_drop].

The actual data transfer is initiated from the target side via an async read, using one of the GdkDrop methods for this purpose: [methodGdk.Drop.read_async] or [methodGdk.Drop.read_value_async].

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.

Instance Method Summary collapse

Instance Method Details

#actionsGdk::DragAction

The possible actions for this drop

Returns:

#actions=(actions) ⇒ Gdk::DragAction

The possible actions for this drop

Parameters:

Returns:

#deviceGdk::Device

The GdkDevice performing the drop

Returns:

#device=(device) ⇒ Gdk::Device

The GdkDevice performing the drop

Parameters:

Returns:

#displayGdk::Display

The GdkDisplay that the drop belongs to.

Returns:

#display=(display) ⇒ Gdk::Display

The GdkDisplay that the drop belongs to.

Parameters:

Returns:

#dragGdk::Drag

The GdkDrag that initiated this drop

Returns:

#drag=(drag) ⇒ Gdk::Drag

The GdkDrag that initiated this drop

Parameters:

Returns:

#finish(action) ⇒ nil

Ends the drag operation after a drop.

The action must be a single action selected from the actions available via [methodGdk.Drop.get_actions].

Parameters:

  • action (Gdk::DragAction)

    the action performed by the destination or 0 if the drop failed

Returns:

  • (nil)

#formatsGdk::ContentFormats

The possible formats that the drop can provide its data in.

Returns:

  • (Gdk::ContentFormats)

    formats

#formats=(formats) ⇒ Gdk::ContentFormats

The possible formats that the drop can provide its data in.

Parameters:

  • formats (Gdk::ContentFormats)

Returns:

  • (Gdk::ContentFormats)

    formats

  • (Gdk::ContentFormats)

    formats

#read_async(mime_types, io_priority, cancellable, callback, user_data) ⇒ nil

Asynchronously read the dropped data from a GdkDrop in a format that complies with one of the mime types.

Parameters:

  • mime_types (Array<String>)

    pointer to an array of mime types

  • io_priority (Integer)

    the I/O priority for the read operation

  • cancellable (Gio::Cancellable)

    optional GCancellable object

  • callback (Gio::AsyncReadyCallback)

    a GAsyncReadyCallback to call when the request is satisfied

  • user_data (GObject)

    the data to pass to callback

Returns:

  • (nil)

#read_finish(result, out_mime_type) ⇒ Gio::InputStream

Finishes an async drop read operation.

Note that you must not use blocking read calls on the returned stream in the GTK thread, since some platforms might require communication with GTK to complete the data transfer. You can use async APIs such as g_input_stream_read_bytes_async().

See [methodGdk.Drop.read_async].

Parameters:

  • result (Gio::AsyncResult)

    a GAsyncResult

  • out_mime_type (String)

    return location for the used mime type

Returns:

  • (Gio::InputStream)

    the GInputStream

#read_value_async(type, io_priority, cancellable, callback, user_data) ⇒ nil

Asynchronously request the drag operation's contents converted to the given type.

When the operation is finished callback will be called. You must then call [methodGdk.Drop.read_value_finish] to get the resulting GValue.

For local drag-and-drop operations that are available in the given GType, the value will be copied directly. Otherwise, GDK will try to use [funcGdk.content_deserialize_async] to convert the data.

Parameters:

  • type (GLib::Type)

    a GType to read

  • io_priority (Integer)

    the I/O priority of the request.

  • cancellable (Gio::Cancellable)

    optional GCancellable object, nil to ignore.

  • callback (Gio::AsyncReadyCallback)

    callback to call when the request is satisfied

  • user_data (GObject)

    the data to pass to callback function

Returns:

  • (nil)

#read_value_finish(result) ⇒ GObject::Value

Finishes an async drop read.

See [methodGdk.Drop.read_value_async].

Parameters:

  • result (Gio::AsyncResult)

    a GAsyncResult

Returns:

  • (GObject::Value)

    a GValue containing the result.

#status(actions, preferred) ⇒ nil

Selects all actions that are potentially supported by the destination.

When calling this function, do not restrict the passed in actions to the ones provided by [methodGdk.Drop.get_actions]. Those actions may change in the future, even depending on the actions you provide here.

The preferred action is a hint to the drag-and-drop mechanism about which action to use when multiple actions are possible.

This function should be called by drag destinations in response to %GDK_DRAG_ENTER or %GDK_DRAG_MOTION events. If the destination does not yet know the exact actions it supports, it should set any possible actions first and then later call this function again.

Parameters:

  • actions (Gdk::DragAction)

    Supported actions of the destination, or 0 to indicate that a drop will not be accepted

  • preferred (Gdk::DragAction)

    A unique action that's a member of actions indicating the preferred action

Returns:

  • (nil)

#surfaceGdk::Surface

The GdkSurface the drop happens on

Returns:

#surface=(surface) ⇒ Gdk::Surface

The GdkSurface the drop happens on

Parameters:

Returns: