Class Drag

All Implemented Interfaces:
PointerInterface

public class Drag extends Object
The `GdkDrag` object represents the source of an ongoing DND operation.

A `GdkDrag` is created when a drag is started, and stays alive for duration of
the DND operation. After a drag has been started with [func@Gdk.Drag.begin],
the caller gets informed about the status of the ongoing drag operation
with signals on the `GdkDrag` object.

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.

https://docs.gtk.org/gdk4/class.Drag.html

  • Field Details

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • dropDone

      public void dropDone(boolean success)
      Informs GDK that the drop ended.

      Passing %FALSE for @success may trigger a drag cancellation
      animation.

      This function is called by the drag source, and should be the
      last call before dropping the reference to the @drag.

      The `GdkDrag` will only take the first [method@Gdk.Drag.drop_done]
      call as effective, if this function is called multiple times,
      all subsequent calls will be ignored.
      Parameters:
      success - whether the drag was ultimatively successful
    • getActions

      public int getActions()
      Determines the bitmask of possible actions proposed by the source.
      Returns:
      the `GdkDragAction` flags
    • getContent

      public ContentProvider getContent()
      Returns the `GdkContentProvider` associated to the `GdkDrag` object.
      Returns:
      The `GdkContentProvider` associated to @drag.
    • getDevice

      public Device getDevice()
      Returns the `GdkDevice` associated to the `GdkDrag` object.
      Returns:
      The `GdkDevice` associated to @drag.
    • getDisplay

      public Display getDisplay()
      Gets the `GdkDisplay` that the drag object was created for.
      Returns:
      a `GdkDisplay`
    • getDragSurface

      public Surface getDragSurface()
      Returns the surface on which the drag icon should be rendered
      during the drag operation.

      Note that the surface may not be available until the drag operation
      has begun. GDK will move the surface in accordance with the ongoing
      drag operation. The surface is owned by @drag and will be destroyed
      when the drag operation is over.
      Returns:
      the drag surface
    • getFormats

      public ContentFormats getFormats()
      Retrieves the formats supported by this `GdkDrag` object.
      Returns:
      a `GdkContentFormats`
    • getSelectedAction

      public int getSelectedAction()
      Determines the action chosen by the drag destination.
      Returns:
      a `GdkDragAction` value
    • getSurface

      public Surface getSurface()
      Returns the `GdkSurface` where the drag originates.
      Returns:
      The `GdkSurface` where the drag originates
    • setHotspot

      public void setHotspot(int hot_x, int hot_y)
      Sets the position of the drag surface that will be kept
      under the cursor hotspot.

      Initially, the hotspot is at the top left corner of the drag surface.
      Parameters:
      hot_x - x coordinate of the drag surface hotspot
      hot_y - y coordinate of the drag surface hotspot
    • onCancel

      public SignalHandler onCancel(Drag.OnCancel signal)
      Connect to signal "cancel".
      See Drag.OnCancel.onCancel(int) for signal description.
      Field SIGNAL_ON_CANCEL contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onDndFinished

      public SignalHandler onDndFinished(Drag.OnDndFinished signal)
      Connect to signal "dnd-finished".
      See Drag.OnDndFinished.onDndFinished() for signal description.
      Field SIGNAL_ON_DND_FINISHED contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onDropPerformed

      public SignalHandler onDropPerformed(Drag.OnDropPerformed signal)
      Connect to signal "drop-performed".
      See Drag.OnDropPerformed.onDropPerformed() for signal description.
      Field SIGNAL_ON_DROP_PERFORMED contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • begin

      public static Drag begin(@Nonnull Surface surface, @Nonnull Device device, @Nonnull ContentProvider content, int actions, double dx, double dy)
      Starts a drag and creates a new drag context for it.

      This function is called by the drag source. After this call, you
      probably want to set up the drag icon using the surface returned
      by [method@Gdk.Drag.get_drag_surface].

      This function returns a reference to the [class@Gdk.Drag] object,
      but GTK keeps its own reference as well, as long as the DND operation
      is going on.

      Note: if @actions include %GDK_ACTION_MOVE, you need to listen for
      the [signal@Gdk.Drag::dnd-finished] signal and delete the data at
      the source if [method@Gdk.Drag.get_selected_action] returns
      %GDK_ACTION_MOVE.
      Parameters:
      surface - the source surface for this drag
      device - the device that controls this drag
      content - the offered content
      actions - the actions supported by this drag
      dx - the x offset to @device's position where the drag nominally started
      dy - the y offset to @device's position where the drag nominally started
      Returns:
      a newly created `GdkDrag`
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()