Interfacing Raku to Gnome GTK+

Gnome::Gtk3::Drag

Functions for controlling drag and drop handling

Description

GTK+ has a rich set of functions for doing inter-process communication via the drag-and-drop metaphor.

As well as the functions listed here, applications may need to use some facilities provided for [Selections][gtk3-Selections]. Also, the Drag and Drop API makes use of signals in the Gnome::Gtk3::Widget class.

Synopsis

Declaration

unit class Gnome::Gtk3::Drag;

Types

Methods

new

default, no options

Create a new Drag object.

multi method new ( )

This object does not wrap a native object into this Raku object because it does not need one. Therefore no option like :native-object is needed.

cancel

Cancels an ongoing drag operation on the source side.

If you want to be able to cancel a drag operation in this way, you need to keep a pointer to the drag context, either from an explicit call to begin_with_coordinates(), or by connecting to drag-begin from Gnome::Gtk3::Widget.

If context does not refer to an ongoing drag operation, this function does nothing.

If a drag is cancelled in this way, the result argument of drag-failed from Gnome::Gtk3::Widget is set to GTK_DRAG_RESULT_ERROR.

method cancel ( N-GObject() $context )
  • $context; a native Gnome::Gdk3::DragContext.

finish

Informs the drag source that the drop is finished, and that the data of the drag will no longer be required.

method finish ( N-GObject() $context, Bool $success, Bool $del, UInt $time )
  • $context; the drag context

  • $success; a flag indicating whether the drop was successful

  • $del; a flag indicating whether the source should delete the original data. (This should be True for a move)

  • $time; the timestamp from the drag-drop from Gnome::Gtk3::Widget signal

get-data

Gets the data associated with a drag. When the data is received or the retrieval fails, GTK+ will emit a drag-data-received from Gnome::Gtk3::Widget signal. Failure of the retrieval is indicated by the length field of the selection_data signal parameter being negative. However, when get_data() is called implicitely because the GTK_DEST_DEFAULT_DROP was set, then the widget will not receive notification of failed drops.

method get-data (
  N-GObject() $widget, N-GObject() $context,
  N-GObject() $target, UInt $time
)
  • $widget; the widget that will receive the drag-data-received from Gnome::Gtk3::Widget signal

  • $context; the drag context, a Gnome::Gdk3::DragContext.

  • $target; the target (form of the data) to retrieve, A native Gnome::Gdk3::Atom.

  • $time; a timestamp for retrieving the data. This will generally be the time received in a drag-motion from Gnome::Gtk3::Widget or drag-drop from Gnome::Gtk3::Widget signal

get-source-widget

Determines the source widget for a drag.

Returns: if the drag is occurring within a single application, a pointer to the source widget. Otherwise, undefined.

method get-source-widget ( N-GObject() $context --> N-GObject )
  • $context; a (destination side) drag context

highlight

Highlights a widget as a currently hovered drop target. To end the highlight, call unhighlight(). GTK+ calls this automatically if GTK_DEST_DEFAULT_HIGHLIGHT is set.

method highlight ( N-GObject() $widget )
  • $widget; a widget to highlight

set-icon-name

Sets the icon for a given drag from a named themed icon. See the docs for Gnome::Gtk3::IconTheme for more details. Note that the size of the icon depends on the icon theme (the icon is loaded at the symbolic size Gnome::Gio::TK_ICON_SIZE_DND), thus hot_x and hot_y have to be used with care.

method set-icon-name (
  N-GObject() $context, Str $icon_name, Int() $hot_x, Int() $hot_y
)
  • $context; the context for a drag (This must be called with a context for the source side of a drag)

  • $icon_name; name of icon to use

  • $hot_x; the X offset of the hotspot within the icon

  • $hot_y; the Y offset of the hotspot within the icon

set-icon-pixbuf

Sets pixbuf as the icon for a given drag.

method set-icon-pixbuf (
  N-GObject() $context, N-GObject() $pixbuf,
  Int() $hot_x, Int() $hot_y
)
  • $context; the context for a drag (This must be called with a context for the source side of a drag)

  • $pixbuf; the Gnome::Gdk3::Pixbuf to use as the drag icon

  • $hot_x; the X offset within widget of the hotspot

  • $hot_y; the Y offset within widget of the hotspot

unhighlight

Removes a highlight set by highlight() from a widget.

method unhighlight ( N-GObject() $widget )
  • $widget; a widget to remove the highlight from