gtkmm: Gdk::Drag Class Reference

gtkmm 4.13.1

Public Member Functions | Static Public Member Functions | Related Functions | List of all members
Gdk::Drag Class Reference

A Gdk::Drag object represents the source of an ongoing DND operation. More...

`#include <gdkmm/drag.h>`

Inheritance diagram for Gdk::Drag:
[legend]

## Public Member Functions
| Drag (Drag && src) noexcept
Drag & | operator= (Drag && src) noexcept
| ~Drag () noexcept override
GdkDrag * | gobj ()
| Provides access to the underlying C GObject. More...
const GdkDrag * | gobj () const
| Provides access to the underlying C GObject. More...
GdkDrag * | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
Glib::RefPtr< Display > | get_display ()
| Gets the `Gdk::Display` that the drag object was created for. More...
Glib::RefPtr< const Display > | get_display () const
| Gets the `Gdk::Display` that the drag object was created for. More...
Glib::RefPtr< Device > | get_device ()
| Returns the `Gdk::Device` associated to the `Gdk::Drag` object. More...
Glib::RefPtr< const Device > | get_device () const
| Returns the `Gdk::Device` associated to the `Gdk::Drag` object. More...
Glib::RefPtr< ContentFormats > | get_formats ()
| Retrieves the formats supported by this `Gdk::Drag` object. More...
Glib::RefPtr< const ContentFormats > | get_formats () const
| Retrieves the formats supported by this `Gdk::Drag` object. More...
DragAction | get_actions () const
| Determines the bitmask of possible actions proposed by the source. More...
DragAction | get_selected_action () const
| Determines the action chosen by the drag destination. More...
void | drag_drop_done (bool success)
| Informs GDK that the drop ended. More...
Glib::RefPtr< Surface > | get_drag_surface ()
| Returns the surface on which the drag icon should be rendered during the drag operation. More...
Glib::RefPtr< const Surface > | get_drag_surface () const
| See the non-const version. More...
void | set_hotspot (int hot_x, int hot_y)
| Sets the position of the drag surface that will be kept under the cursor hotspot. More...
Glib::RefPtr< ContentProvider > | get_content ()
| Returns the `Gdk::ContentProvider` associated to the `Gdk::Drag` object. More...
Glib::RefPtr< const ContentProvider > | get_content () const
| Returns the `Gdk::ContentProvider` associated to the `Gdk::Drag` object. More...
Glib::RefPtr< Surface > | get_surface ()
| Returns the `Gdk::Surface` where the drag originates. More...
Glib::RefPtr< const Surface > | get_surface () const
| Returns the `Gdk::Surface` where the drag originates. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< ContentProvider > > | property_content () const
| The `Gdk::ContentProvider`. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Device > > | property_device () const
| The `Gdk::Device` that is performing the drag. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Display > > | property_display () const
| The `Gdk::Display` that the drag belongs to. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< ContentFormats > > | property_formats () const
| The possible formats that the drag can provide its data in. More...
Glib::PropertyProxy< DragAction > | property_selected_action ()
| The currently selected action of the drag. More...
Glib::PropertyProxy_ReadOnly< DragAction > | property_selected_action () const
| The currently selected action of the drag. More...
Glib::PropertyProxy< DragAction > | property_actions ()
| The possible actions of this drag. More...
Glib::PropertyProxy_ReadOnly< DragAction > | property_actions () const
| The possible actions of this drag. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Surface > > | property_surface () const
| The surface where the drag originates. More...
Glib::SignalProxy< void(DragCancelReason)> | signal_cancel ()
Glib::SignalProxy< void()> | signal_drop_performed ()
Glib::SignalProxy< void()> | signal_dnd_finished ()
Public Member Functions inherited from Glib::Object
| Object (const Object &)=delete
Object & | operator= (const Object &)=delete
| Object (Object &&src) noexcept
Object & | operator= (Object &&src) noexcept
void * | get_data (const QueryQuark &key)
void | set_data (const Quark &key, void *data)
void | set_data_with_c_callback (const Quark &key, void *data, GDestroyNotify notify)
void | set_data (const Quark &key, void *data, DestroyNotify notify)
void | remove_data (const QueryQuark &quark)
void * | steal_data (const QueryQuark &quark)
Glib::RefPtr< Glib::Object > | wrap (GObject *object, bool take_copy=false)
Public Member Functions inherited from Glib::ObjectBase
| ObjectBase (const ObjectBase &)=delete
ObjectBase & | operator= (const ObjectBase &)=delete
void | set_property_value (const Glib::ustring &property_name, const Glib::ValueBase &value)
void | get_property_value (const Glib::ustring &property_name, Glib::ValueBase &value) const
void | set_property (const Glib::ustring &property_name, const PropertyType &value)
void | get_property (const Glib::ustring &property_name, PropertyType &value) const
PropertyType | get_property (const Glib::ustring &property_name) const
sigc::connection | connect_property_changed (const Glib::ustring &property_name, const sigc::slot< void()> &slot)
sigc::connection | connect_property_changed (const Glib::ustring &property_name, sigc::slot< void()> &&slot)
void | freeze_notify ()
void | thaw_notify ()
virtual void | reference () const
virtual void | unreference () const
GObject * | gobj ()
const GObject * | gobj () const
GObject * | gobj_copy () const
Public Member Functions inherited from sigc::trackable
| trackable () noexcept
| trackable (const trackable &src) noexcept
| trackable (trackable &&src) noexcept
| ~trackable ()
void | add_destroy_notify_callback (notifiable *data, func_destroy_notify func) const
void | notify_callbacks ()
trackable & | operator= (const trackable &src)
trackable & | operator= (trackable &&src) noexcept
void | remove_destroy_notify_callback (notifiable *data) const

## Static Public Member Functions
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...
static bool | action_is_unique (DragAction action)
| Checks if action represents a single action or includes multiple actions. More...

## Related Functions
(Note that these are not member functions.)
Glib::RefPtr< Gdk::Drag > | wrap (GdkDrag * object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## Additional Inherited Members
Public Types inherited from Glib::Object
typedef void(*)(gpointer data | DestroyNotify)
Public Types inherited from sigc::trackable
typedef internal::func_destroy_notify | func_destroy_notify
Public Types inherited from sigc::notifiable
typedef internal::func_destroy_notify | func_destroy_notify
Protected Member Functions inherited from Glib::Object
| Object ()
| Object (const Glib::ConstructParams &construct_params)
| Object (GObject *castitem)
| ~Object () noexcept override
Protected Member Functions inherited from Glib::ObjectBase
| ObjectBase ()
| ObjectBase (const char *custom_type_name)
| ObjectBase (const std::type_info &custom_type_info)
| ObjectBase (ObjectBase &&src) noexcept
ObjectBase & | operator= (ObjectBase &&src) noexcept
virtual | ~ObjectBase () noexcept=0
void | initialize (GObject *castitem)
void | initialize_move (GObject *castitem, Glib::ObjectBase *previous_wrapper)

## Detailed Description

A Gdk::Drag object represents the source of an ongoing DND operation.

A Gdk::Drag is created when a drag is started, and stays alive for the duration of the DND operation. After a drag has been started with Gdk::Surface::drag_begin_from_point(), the caller gets informed about the status of the ongoing drag operation with signals on the Gdk::Drag object.

GTK provides a higher level abstraction based on top of these functions, and so they are not normally needed in GTK applications.

## Constructor & Destructor Documentation

## ◆ Drag()

Gdk::Drag::Drag | ( | Drag && | src | ) |
| noexcept

## ◆ ~Drag()

Gdk::Drag::~Drag | ( |  | ) |
| overridenoexcept

## Member Function Documentation

## ◆ action_is_unique()

static bool Gdk::Drag::action_is_unique | ( | DragAction | action | ) |
| static

Checks if action represents a single action or includes multiple actions.

When action is 0 - ie no action was given, `true` is returned.

Parameters

  action | A `Gdk::DragAction`.

Returns
  `true` if exactly one action was given.

## ◆ drag_drop_done()

void Gdk::Drag::drag_drop_done | ( | bool | 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 `Gdk::Drag` will only take the first 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.

## ◆ get_actions()

DragAction Gdk::Drag::get_actions | ( |  | ) | const

Determines the bitmask of possible actions proposed by the source.

Returns
  The `Gdk::DragAction` flags.

## ◆ get_content() [1/2]

Glib::RefPtr< ContentProvider > Gdk::Drag::get_content | ( |  | ) |

Returns the `Gdk::ContentProvider` associated to the `Gdk::Drag` object.

Returns
  The `Gdk::ContentProvider` associated to drag.

## ◆ get_content() [2/2]

Glib::RefPtr< const ContentProvider > Gdk::Drag::get_content | ( |  | ) | const

Returns the `Gdk::ContentProvider` associated to the `Gdk::Drag` object.

Returns
  The `Gdk::ContentProvider` associated to drag.

## ◆ get_device() [1/2]

Glib::RefPtr< Device > Gdk::Drag::get_device | ( |  | ) |

Returns the `Gdk::Device` associated to the `Gdk::Drag` object.

Returns
  The `Gdk::Device` associated to drag.

## ◆ get_device() [2/2]

Glib::RefPtr< const Device > Gdk::Drag::get_device | ( |  | ) | const

Returns the `Gdk::Device` associated to the `Gdk::Drag` object.

Returns
  The `Gdk::Device` associated to drag.

## ◆ get_display() [1/2]

Glib::RefPtr< Display > Gdk::Drag::get_display | ( |  | ) |

Gets the `Gdk::Display` that the drag object was created for.

Returns
  A `Gdk::Display`.

## ◆ get_display() [2/2]

Glib::RefPtr< const Display > Gdk::Drag::get_display | ( |  | ) | const

Gets the `Gdk::Display` that the drag object was created for.

Returns
  A `Gdk::Display`.

## ◆ get_drag_surface() [1/2]

Glib::RefPtr< Surface > Gdk::Drag::get_drag_surface | ( |  | ) |

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 will be destroyed when the drag operation is over.

The returned surface is usually a subclass of Gdk::Surface that implements the Gdk::DragSurface interface. To use drag surface API, do something like

auto surface = drag->get_drag_surface();
auto drag_surface = std::dynamic_pointer_cast<Gdk::DragSurfaceImpl>(surface);
if (drag_surface)
drag_surface->do_something();

Returns
  The drag surface, or an empty RefPtr.

## ◆ get_drag_surface() [2/2]

Glib::RefPtr< const Surface > Gdk::Drag::get_drag_surface | ( |  | ) | const

See the non-const version.

## ◆ get_formats() [1/2]

Glib::RefPtr< ContentFormats > Gdk::Drag::get_formats | ( |  | ) |

Retrieves the formats supported by this `Gdk::Drag` object.

Returns
  A `Gdk::ContentFormats`.

## ◆ get_formats() [2/2]

Glib::RefPtr< const ContentFormats > Gdk::Drag::get_formats | ( |  | ) | const

Retrieves the formats supported by this `Gdk::Drag` object.

Returns
  A `Gdk::ContentFormats`.

## ◆ get_selected_action()

DragAction Gdk::Drag::get_selected_action | ( |  | ) | const

Determines the action chosen by the drag destination.

Returns
  A `Gdk::DragAction` value.

## ◆ get_surface() [1/2]

Glib::RefPtr< Surface > Gdk::Drag::get_surface | ( |  | ) |

Returns the `Gdk::Surface` where the drag originates.

Returns
  The `Gdk::Surface` where the drag originates.

## ◆ get_surface() [2/2]

Glib::RefPtr< const Surface > Gdk::Drag::get_surface | ( |  | ) | const

Returns the `Gdk::Surface` where the drag originates.

Returns
  The `Gdk::Surface` where the drag originates.

## ◆ get_type()

static GType Gdk::Drag::get_type | ( |  | ) |
| static

Get the GType for this class, for use with the underlying GObject type system.

## ◆ gobj() [1/2]

GdkDrag * Gdk::Drag::gobj | ( |  | ) |
| inline

Provides access to the underlying C GObject.

## ◆ gobj() [2/2]

const GdkDrag * Gdk::Drag::gobj | ( |  | ) | const
| inline

Provides access to the underlying C GObject.

## ◆ gobj_copy()

GdkDrag * Gdk::Drag::gobj_copy | ( |  | ) |

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

## ◆ operator=()

Drag & Gdk::Drag::operator= | ( | Drag && | src | ) |
| noexcept

## ◆ property_actions() [1/2]

Glib::PropertyProxy< DragAction > Gdk::Drag::property_actions | ( |  | ) |

The possible actions of this drag.

Default value: 0

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

## ◆ property_actions() [2/2]

Glib::PropertyProxy_ReadOnly< DragAction > Gdk::Drag::property_actions | ( |  | ) | const

The possible actions of this drag.

Default value: 0

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_content()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< ContentProvider > > Gdk::Drag::property_content | ( |  | ) | const

The `Gdk::ContentProvider`.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_device()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Device > > Gdk::Drag::property_device | ( |  | ) | const

The `Gdk::Device` that is performing the drag.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_display()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Display > > Gdk::Drag::property_display | ( |  | ) | const

The `Gdk::Display` that the drag belongs to.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_formats()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< ContentFormats > > Gdk::Drag::property_formats | ( |  | ) | const

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

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_selected_action() [1/2]

Glib::PropertyProxy< DragAction > Gdk::Drag::property_selected_action | ( |  | ) |

The currently selected action of the drag.

Default value: 0

Returns
  A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

## ◆ property_selected_action() [2/2]

Glib::PropertyProxy_ReadOnly< DragAction > Gdk::Drag::property_selected_action | ( |  | ) | const

The currently selected action of the drag.

Default value: 0

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_surface()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Surface > > Gdk::Drag::property_surface | ( |  | ) | const

The surface where the drag originates.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ set_hotspot()

void Gdk::Drag::set_hotspot | ( | 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.

## ◆ signal_cancel()

Glib::SignalProxy< void(DragCancelReason)> Gdk::Drag::signal_cancel | ( |  | ) |

Slot Prototype:
  `void on_my_cancel(DragCancelReason reason)`

Flags: Run Last

Emitted when the drag operation is cancelled.

Parameters

  reason | The reason the drag was cancelled.

## ◆ signal_dnd_finished()

Glib::SignalProxy< void()> Gdk::Drag::signal_dnd_finished | ( |  | ) |

Slot Prototype:
  `void on_my_dnd_finished()`

Flags: Run Last

Emitted when the destination side has finished reading all data.

The drag object can now free all miscellaneous data.

## ◆ signal_drop_performed()

Glib::SignalProxy< void()> Gdk::Drag::signal_drop_performed | ( |  | ) |

Slot Prototype:
  `void on_my_drop_performed()`

Flags: Run Last

Emitted when the drop operation is performed on an accepting client.

## Friends And Related Function Documentation

## ◆ wrap()

Glib::RefPtr< Gdk::Drag > wrap | ( | GdkDrag * | object,
|  | bool | take_copy = `false`
| ) |  |
| related

A Glib::wrap() method for this object.

Parameters

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns
  A C++ instance that wraps this C instance.