gtkmm  3.95.1
Functions
Gtk::DnD Namespace Reference

Drag-and-drop functions. More...

Functions

Widgetget_source_widget (const Glib::RefPtr< Gdk::Drag >& drag)
 Determines the source widget for a drag. More...
 
void cancel (const Glib::RefPtr< Gdk::Drag >& drag)
 Cancels an ongoing drag operation on the source side. More...
 
void set_icon (const Glib::RefPtr< Gdk::Drag >& drag, Widget& widget, int hot_x=0, int hot_y=0)
 Changes the icon for drag operation to a given widget. More...
 
void set_icon (const Glib::RefPtr< Gdk::Drag >& drag, const Glib::RefPtr< Gdk::Paintable >& paintable, int hot_x=0, int hot_y=0)
 Sets paintable as the icon for a given drag. More...
 
void set_icon (const Glib::RefPtr< Gdk::Drag >& drag, const Glib::ustring& icon_name, int hot_x=0, int hot_y=0)
 Sets the icon for a given drag from a named themed icon. More...
 
void set_icon (const Glib::RefPtr< Gdk::Drag >& drag, const Glib::RefPtr< Gio::Icon >& icon, int hot_x=0, int hot_y=0)
 Sets the icon for a given drag from the given icon. More...
 
void set_icon (const Glib::RefPtr< Gdk::Drag >& drag)
 Sets the icon for a particular drag to the default icon. More...
 

Detailed Description

Drag-and-drop functions.

The Gtk::DnD namespace contains functions that logically are Gdk::Drag methods. However, they can't be members of Gdk::Drag, because they depend on code in the gtk part of gtk+. Such a dependency is not allowed in a Gdk class.

See also
Gdk::Drag, Gdk::Drop, Gtk::Widget
Since gtkmm 3.94:

Function Documentation

void Gtk::DnD::cancel ( const Glib::RefPtr< Gdk::Drag >&  drag)

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 reference to the Gdk::Drag instance, either from an explicit call to Gtk::Widget::drag_begin(), or by connecting to Gtk::Widget::signal_drag_begin().

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

If a drag is cancelled in this way, the result argument of Gtk::Widget::signal_drag_failed() is set to Gtk::DragResult::ERROR.

Parameters
dragA Gdk::Drag instance, as e.g. returned by Gtk::Widget::drag_begin().
Widget* Gtk::DnD::get_source_widget ( const Glib::RefPtr< Gdk::Drag >&  drag)

Determines the source widget for a drag.

Parameters
dragA Gdk::Drag instance.
Returns
If the drag is occurring within a single application, a pointer to the source widget, otherwise nullptr.
void Gtk::DnD::set_icon ( const Glib::RefPtr< Gdk::Drag >&  drag,
Widget widget,
int  hot_x = 0,
int  hot_y = 0 
)

Changes the icon for drag operation to a given widget.

GTK+ will not destroy the widget, so if you don’t want it to persist, you should connect to Gtk::Widget::signal_drag_end() and destroy it yourself.

Parameters
dragA Gdk::Drag instance.
widgetA widget to use as an icon.
hot_xThe X offset within widget of the hotspot.
hot_yThe Y offset within widget of the hotspot.
void Gtk::DnD::set_icon ( const Glib::RefPtr< Gdk::Drag >&  drag,
const Glib::RefPtr< Gdk::Paintable >&  paintable,
int  hot_x = 0,
int  hot_y = 0 
)

Sets paintable as the icon for a given drag.

To position the paintable relative to the mouse, its top left will be positioned hot_x, hot_y pixels from the mouse cursor.

Parameters
dragA Gdk::Drag instance.
paintableThe Gdk::Paintable to use as icon.
hot_xThe X offset of the hotspot within the icon.
hot_yThe Y offset of the hotspot within the icon.
void Gtk::DnD::set_icon ( const Glib::RefPtr< Gdk::Drag >&  drag,
const Glib::ustring icon_name,
int  hot_x = 0,
int  hot_y = 0 
)

Sets the icon for a given drag from a named themed icon.

See the docs for Gtk::IconTheme for more details. Note that the size of the icon depends on the icon theme (the icon is loaded at the symbolic size Gtk::IconSize::INHERIT), thus hot_x and hot_y have to be used with care.

Parameters
dragA Gdk::Drag instance.
icon_nameName of icon to use.
hot_xThe X offset of the hotspot within the icon.
hot_yThe Y offset of the hotspot within the icon.
void Gtk::DnD::set_icon ( const Glib::RefPtr< Gdk::Drag >&  drag,
const Glib::RefPtr< Gio::Icon > &  icon,
int  hot_x = 0,
int  hot_y = 0 
)

Sets the icon for a given drag from the given icon.

See the documentation for Gtk::DnD::set_icon(const Glib::RefPtr<Gdk::Drag>& drag, const Glib::ustring& icon_name, int hot_x, int hot_y) for more details about using icons in drag and drop.

Parameters
dragA Gdk::Drag instance.
iconA Gio::Icon.
hot_xThe X offset of the hotspot within the icon.
hot_yThe Y offset of the hotspot within the icon.
void Gtk::DnD::set_icon ( const Glib::RefPtr< Gdk::Drag >&  drag)

Sets the icon for a particular drag to the default icon.

Parameters
dragA Gdk::Drag instance.